X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtk-contrib%2Fpsppire-sheet.c;h=29af859e34d506f3c8948689c94ef70f796818b2;hb=a1edd7f28a94b05b3fd48850e80dd0b96bead96e;hp=c84d898984fbac6bfeaedfde639860183c4f0b19;hpb=00396b2d6cb415f19cefda552e3edd571a71ac93;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index c84d8989..29af859e 100644 --- a/lib/gtk-contrib/psppire-sheet.c +++ b/lib/gtk-contrib/psppire-sheet.c @@ -855,7 +855,7 @@ psppire_sheet_class_init (PsppireSheetClass *klass) /** * PsppireSheet::select-row * @sheet: the sheet widget that emitted the signal - * @row: the newly selected row index + * @row: the newly selected row index, or -1 if no row is selected. * * A row has been selected. */ @@ -874,7 +874,7 @@ psppire_sheet_class_init (PsppireSheetClass *klass) /** * PsppireSheet::select - column * @sheet: the sheet widget that emitted the signal - * @column: the newly selected column index + * @column: the newly selected column index, or -1 if no column is selected. * * A column has been selected. */ @@ -1129,7 +1129,6 @@ psppire_sheet_init (PsppireSheet *sheet) sheet->vaxis = NULL; sheet->flags = 0; - sheet->selection_mode = GTK_SELECTION_NONE; sheet->select_status = PSPPIRE_SHEET_NORMAL; GTK_WIDGET_UNSET_FLAGS (sheet, GTK_NO_WINDOW); @@ -2701,6 +2700,8 @@ psppire_sheet_select_row (PsppireSheet *sheet, gint row) area.y++; gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); + + g_signal_emit (sheet, sheet_signals [SELECT_ROW], 0, row); } void @@ -2717,6 +2718,8 @@ psppire_sheet_select_column (PsppireSheet *sheet, gint column) area.y++; gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); + + g_signal_emit (sheet, sheet_signals [SELECT_COLUMN], 0, column); } @@ -2744,28 +2747,12 @@ psppire_sheet_unselect_range (PsppireSheet *sheet) rectangle_from_range (sheet, &sheet->range, &area); area.x++; area.y++; - gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); -} - -static void -psppire_sheet_real_select_range (PsppireSheet *sheet, - const PsppireSheetRange *range) -{ - g_return_if_fail (sheet != NULL); - - if (range == NULL) range = &sheet->range; - - memcpy (&sheet->range, range, sizeof (*range)); - - if (range->row0 < 0 || range->rowi < 0) return; - if (range->col0 < 0 || range->coli < 0) return; - - psppire_sheet_update_primary_selection (sheet); + gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); - g_signal_emit (sheet, sheet_signals[SELECT_RANGE], 0, &sheet->range); + g_signal_emit (sheet, sheet_signals [SELECT_COLUMN], 0, -1); + g_signal_emit (sheet, sheet_signals [SELECT_ROW], 0, -1); } - void psppire_sheet_get_selected_range (PsppireSheet *sheet, PsppireSheetRange *range) { @@ -3457,20 +3444,6 @@ psppire_sheet_motion (GtkWidget *widget, GdkEventMotion *event) gdk_window_set_cursor (sheet->sheet_window, sheet->cursor_drag); } - new_cursor = GDK_SIZING; - if ( event->window == sheet->sheet_window && - sheet->selection_mode != GTK_SELECTION_NONE && - !PSPPIRE_SHEET_IN_DRAG (sheet) && - (POSSIBLE_RESIZE (sheet, x, y, &row, &column) || - PSPPIRE_SHEET_IN_RESIZE (sheet)) && - new_cursor != sheet->cursor_drag->type) - { - gdk_cursor_unref (sheet->cursor_drag); - sheet->cursor_drag = gdk_cursor_new_for_display (display, GDK_SIZING); - gdk_window_set_cursor (sheet->sheet_window, sheet->cursor_drag); - } - - gdk_window_get_pointer (widget->window, &x, &y, &mods); if (! (mods & GDK_BUTTON1_MASK)) return FALSE;