X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtk-contrib%2Fpsppire-sheet.c;h=a3bb1c8fcb96ea9e4dfa02a39a8a08d6cc12480c;hb=38d5e09c01ddffc98430c3c55ed3ccb821180cbf;hp=2dd31f767b82c542424247679b0ce49d551c78c8;hpb=da8273b1311e75a7d2fb3a2ce0baa1ff4c07775f;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index 2dd31f76..a3bb1c8f 100644 --- a/lib/gtk-contrib/psppire-sheet.c +++ b/lib/gtk-contrib/psppire-sheet.c @@ -2302,7 +2302,7 @@ draw_sheet_region (PsppireSheet *sheet, GdkRegion *region) psppire_sheet_cell_draw (sheet, i, j); } - if (sheet->select_status == GTK_STATE_NORMAL && + if (sheet->select_status == PSPPIRE_SHEET_NORMAL && sheet->active_cell.row >= drawing_range.row0 && sheet->active_cell.row <= drawing_range.rowi && sheet->active_cell.col >= drawing_range.col0 && @@ -2578,7 +2578,7 @@ entry_load_text (PsppireSheet *sheet) PsppireSheetCellAttr attributes; if (!GTK_WIDGET_VISIBLE (sheet->entry_widget)) return; - if (sheet->select_status != GTK_STATE_NORMAL) return; + if (sheet->select_status != PSPPIRE_SHEET_NORMAL) return; row = sheet->active_cell.row; col = sheet->active_cell.col; @@ -2824,7 +2824,7 @@ psppire_sheet_unselect_range (PsppireSheet *sheet) return; psppire_sheet_real_unselect_range (sheet, NULL); - sheet->select_status = GTK_STATE_NORMAL; + sheet->select_status = PSPPIRE_SHEET_NORMAL; } @@ -3056,7 +3056,13 @@ psppire_sheet_button_press (GtkWidget *widget, GdkEventButton *event) } else { + GdkRectangle area; sheet->select_status = PSPPIRE_SHEET_NORMAL; + + rectangle_from_range (sheet, &sheet->range, &area); + area.x++; + area.y++; + gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); } } } @@ -3119,7 +3125,7 @@ psppire_sheet_click_cell (PsppireSheet *sheet, gint row, gint column) if (forbid_move) { - if (sheet->select_status == GTK_STATE_NORMAL) + if (sheet->select_status == PSPPIRE_SHEET_NORMAL) return FALSE; row = sheet->active_cell.row; @@ -3235,7 +3241,7 @@ psppire_sheet_button_release (GtkWidget *widget, sheet->range = sheet->drag_range; sheet->drag_range = old_range; - if (sheet->select_status == GTK_STATE_NORMAL) + if (sheet->select_status == PSPPIRE_SHEET_NORMAL) sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED; g_signal_emit (sheet, sheet_signals[RESIZE_RANGE], 0, @@ -3689,11 +3695,21 @@ psppire_sheet_motion (GtkWidget *widget, GdkEventMotion *event) if (PSPPIRE_SHEET_IN_SELECTION (sheet) ) { GdkRectangle area; + + /* Redraw the old range */ + rectangle_from_range (sheet, &sheet->range, &area); + area.x++; + area.y++; + gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); + sheet->range.rowi = row; sheet->range.coli = column; sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED; + /* Redraw the new range */ rectangle_from_range (sheet, &sheet->range, &area); + area.x++; + area.y++; gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); } else