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=e09022bb3d4adbc352b03faea8d514263e6bec95;hpb=db0ab43d34135721e7e82ba62d413681e462f801;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index e09022bb..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. */ @@ -2700,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 @@ -2716,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); } @@ -2743,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); + gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE); - 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); - - 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) {