X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtk-contrib%2Fpsppire-sheet.c;h=6d1c0af9755cdeeeaee47dada8587dbffc81907f;hb=ae48c4384e74844a6ef9a13ecbecda106fe5b8e4;hp=8122eba99967fbef89b17c4c04363820449763e8;hpb=524932d8d25d51ca1d0c6993ec9f36014073b3d9;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index 8122eba9..6d1c0af9 100644 --- a/lib/gtk-contrib/psppire-sheet.c +++ b/lib/gtk-contrib/psppire-sheet.c @@ -387,30 +387,33 @@ POSSIBLE_RESIZE (const PsppireSheet *sheet, gint x, gint y, } -static gboolean -rectangle_from_range (PsppireSheet *sheet, const PsppireSheetRange *input, +static void +rectangle_from_range (PsppireSheet *sheet, const PsppireSheetRange *range, GdkRectangle *r) { - PsppireSheetRange range = *input; + gint col0 = MIN (range->col0, range->coli); + gint coli = MAX (range->col0, range->coli); + gint row0 = MIN (range->row0, range->rowi); + gint rowi = MAX (range->row0, range->rowi); - if ( range.row0 == -1 ) range.row0 = min_visible_row (sheet); - if ( range.rowi == -1 ) range.rowi = max_visible_row (sheet); - if ( range.col0 == -1 ) range.col0 = min_visible_column (sheet); - if ( range.coli == -1 ) range.coli = max_visible_column (sheet); + if ( row0 == -1 ) row0 = min_visible_row (sheet); + if ( rowi == -1 ) rowi = max_visible_row (sheet); + if ( col0 == -1 ) col0 = min_visible_column (sheet); + if ( coli == -1 ) coli = max_visible_column (sheet); - r->x = psppire_axis_start_pixel (sheet->haxis, range.col0); + r->x = psppire_axis_start_pixel (sheet->haxis, col0); r->x -= round (sheet->hadjustment->value); - r->y = psppire_axis_start_pixel (sheet->vaxis, range.row0); + r->y = psppire_axis_start_pixel (sheet->vaxis, row0); r->y -= round (sheet->vadjustment->value); - r->width = psppire_axis_start_pixel (sheet->haxis, range.coli) - - psppire_axis_start_pixel (sheet->haxis, range.col0) + - psppire_axis_unit_size (sheet->haxis, range.coli); + r->width = psppire_axis_start_pixel (sheet->haxis, coli) - + psppire_axis_start_pixel (sheet->haxis, col0) + + psppire_axis_unit_size (sheet->haxis, coli); - r->height = psppire_axis_start_pixel (sheet->vaxis, range.rowi) - - psppire_axis_start_pixel (sheet->vaxis, range.row0) + - psppire_axis_unit_size (sheet->vaxis, range.rowi); + r->height = psppire_axis_start_pixel (sheet->vaxis, rowi) - + psppire_axis_start_pixel (sheet->vaxis, row0) + + psppire_axis_unit_size (sheet->vaxis, rowi); if ( sheet->column_titles_visible) { @@ -421,22 +424,20 @@ rectangle_from_range (PsppireSheet *sheet, const PsppireSheetRange *input, { r->x += sheet->row_title_area.width; } - - return TRUE; } -static gboolean +static void rectangle_from_cell (PsppireSheet *sheet, gint row, gint col, GdkRectangle *r) { PsppireSheetRange range; - g_return_val_if_fail (row >= 0, FALSE); - g_return_val_if_fail (col >= 0, FALSE); + g_return_if_fail (row >= 0); + g_return_if_fail (col >= 0); range.row0 = range.rowi = row; range.col0 = range.coli = col; - return rectangle_from_range (sheet, &range, r); + rectangle_from_range (sheet, &range, r); } @@ -2776,30 +2777,15 @@ psppire_sheet_expose (GtkWidget *widget, GdkEventExpose *event) if (sheet->select_status != PSPPIRE_SHEET_NORMAL) { -#if 0 - if (psppire_sheet_range_isvisible (sheet, &sheet->range)) - psppire_sheet_range_draw (sheet, &sheet->range); + GdkRectangle area; - if (PSPPIRE_SHEET_IN_RESIZE (sheet) || PSPPIRE_SHEET_IN_DRAG (sheet)) - psppire_sheet_range_draw (sheet, &sheet->drag_range); -#endif - - { - GdkRectangle area; - - rectangle_from_range (sheet, &sheet->range, &area); + rectangle_from_range (sheet, &sheet->range, &area); - gdk_draw_rectangle (sheet->sheet_window, - sheet->xor_gc, - TRUE, - area.x + 1, area.y + 1, - area.width, area.height); - } - -#if 0 - if (PSPPIRE_SHEET_IN_RESIZE (sheet) || PSPPIRE_SHEET_IN_DRAG (sheet)) - draw_xor_rectangle (sheet, sheet->drag_range); -#endif + gdk_draw_rectangle (sheet->sheet_window, + sheet->xor_gc, + TRUE, + area.x + 1, area.y + 1, + area.width, area.height); }