X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtk-contrib%2Fpsppire-sheet.c;h=f68ccad3d8b0e544973563216da6daccabe23ac9;hb=14aac9fe7a7efbb6c9bded2ed5969a643cb76645;hp=47c429a0555c3f277808c6dbd537ed3e5709683f;hpb=9b0d0bed9b0f412adebe9a8a97ef1f8f619dbd16;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index 47c429a0..f68ccad3 100644 --- a/lib/gtk-contrib/psppire-sheet.c +++ b/lib/gtk-contrib/psppire-sheet.c @@ -1635,7 +1635,6 @@ psppire_sheet_select_row (PsppireSheet *sheet, gint row) sheet->range.col0 = 0; sheet->range.rowi = row; sheet->range.coli = psppire_axis_unit_count (sheet->haxis) - 1; - sheet->active_cell.row = row; g_signal_emit (sheet, sheet_signals[SELECT_ROW], 0, row); psppire_sheet_real_select_range (sheet, NULL); @@ -1659,7 +1658,6 @@ psppire_sheet_select_column (PsppireSheet *sheet, gint column) sheet->range.col0 = column; sheet->range.rowi = psppire_axis_unit_count (sheet->vaxis) - 1; sheet->range.coli = column; - sheet->active_cell.col = column; g_signal_emit (sheet, sheet_signals[SELECT_COLUMN], 0, column); psppire_sheet_real_select_range (sheet, NULL); @@ -2718,11 +2716,11 @@ change_active_cell (PsppireSheet *sheet, gint row, gint col) old_row = sheet->active_cell.row; old_col = sheet->active_cell.col; - /* Erase the old cell */ - psppire_sheet_draw_active_cell (sheet); - entry_load_text (sheet); + /* Erase the old cell border */ + psppire_sheet_draw_active_cell (sheet); + sheet->range.row0 = row; sheet->range.col0 = col; sheet->range.rowi = row; @@ -3102,6 +3100,8 @@ psppire_sheet_draw_border (PsppireSheet *sheet, PsppireSheetRange new_range) area.y, area.width, area.height); + + gdk_gc_set_clip_rectangle (sheet->xor_gc, NULL); } @@ -3166,8 +3166,6 @@ psppire_sheet_select_range (PsppireSheet *sheet, const PsppireSheetRange *range) sheet->range.rowi = range->rowi; sheet->range.col0 = range->col0; sheet->range.coli = range->coli; - sheet->active_cell.row = range->row0; - sheet->active_cell.col = range->col0; sheet->selection_cell.row = range->rowi; sheet->selection_cell.col = range->coli; @@ -3292,7 +3290,7 @@ psppire_sheet_button_press (GtkWidget *widget, GdkModifierType mods; gint x, y; gint row, column; - gboolean veto; + g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (PSPPIRE_IS_SHEET (widget), FALSE); @@ -3396,65 +3394,8 @@ psppire_sheet_button_press (GtkWidget *widget, NULL, NULL, event->time); gtk_grab_add (GTK_WIDGET (sheet)); - if (sheet->selection_mode != GTK_SELECTION_SINGLE && - sheet->selection_mode != GTK_SELECTION_NONE && - sheet->cursor_drag->type == GDK_SIZING && - !PSPPIRE_SHEET_IN_SELECTION (sheet) && !PSPPIRE_SHEET_IN_RESIZE (sheet)) - { - if (sheet->state == GTK_STATE_NORMAL) - { - row = sheet->active_cell.row; - column = sheet->active_cell.col; - sheet->active_cell.row = row; - sheet->active_cell.col = column; - sheet->drag_range = sheet->range; - sheet->state = PSPPIRE_SHEET_RANGE_SELECTED; - psppire_sheet_select_range (sheet, &sheet->drag_range); - } - sheet->x_drag = x; - sheet->y_drag = y; - if (row > sheet->range.rowi) row--; - if (column > sheet->range.coli) column--; - sheet->drag_cell.row = row; - sheet->drag_cell.col = column; - sheet->drag_range = sheet->range; - draw_xor_rectangle (sheet, sheet->drag_range); - PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_RESIZE); - } - else if (sheet->cursor_drag->type == GDK_TOP_LEFT_ARROW && - !PSPPIRE_SHEET_IN_SELECTION (sheet) - && ! PSPPIRE_SHEET_IN_DRAG (sheet) - && sheet->active_cell.row >= 0 - && sheet->active_cell.col >= 0 - ) - { - if (sheet->state == GTK_STATE_NORMAL) - { - row = sheet->active_cell.row; - column = sheet->active_cell.col; - sheet->active_cell.row = row; - sheet->active_cell.col = column; - sheet->drag_range = sheet->range; - sheet->state = PSPPIRE_SHEET_RANGE_SELECTED; - psppire_sheet_select_range (sheet, &sheet->drag_range); - } - sheet->x_drag = x; - sheet->y_drag = y; - if (row < sheet->range.row0) row++; - if (row > sheet->range.rowi) row--; - if (column < sheet->range.col0) column++; - if (column > sheet->range.coli) column--; - sheet->drag_cell.row = row; - sheet->drag_cell.col = column; - sheet->drag_range = sheet->range; - draw_xor_rectangle (sheet, sheet->drag_range); - PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_DRAG); - } - else - { - veto = psppire_sheet_click_cell (sheet, row, column); - if (veto) PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_SELECTION); - } + if (psppire_sheet_click_cell (sheet, row, column)) + PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_SELECTION); } if (event->window == sheet->column_title_window) @@ -3469,7 +3410,6 @@ psppire_sheet_button_press (GtkWidget *widget, if (psppire_sheet_model_get_column_sensitivity (sheet->model, column)) { - veto = psppire_sheet_click_cell (sheet, -1, column); gtk_grab_add (GTK_WIDGET (sheet)); PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_SELECTION); } @@ -3486,7 +3426,6 @@ psppire_sheet_button_press (GtkWidget *widget, row = row_from_ypixel (sheet, y); if (psppire_sheet_model_get_row_sensitivity (sheet->model, row)) { - veto = psppire_sheet_click_cell (sheet, row, -1); gtk_grab_add (GTK_WIDGET (sheet)); PSPPIRE_SHEET_SET_FLAGS (sheet, PSPPIRE_SHEET_IN_SELECTION); } @@ -3546,8 +3485,6 @@ psppire_sheet_click_cell (PsppireSheet *sheet, gint row, gint column) sheet->range.rowi = psppire_axis_unit_count (sheet->vaxis) - 1; sheet->range.coli = psppire_axis_unit_count (sheet->haxis) - 1; - sheet->active_cell.row = 0; - sheet->active_cell.col = 0; psppire_sheet_select_range (sheet, NULL); return TRUE; } @@ -3562,8 +3499,6 @@ psppire_sheet_click_cell (PsppireSheet *sheet, gint row, gint column) change_active_cell (sheet, row, column); } - sheet->active_cell.row = row; - sheet->active_cell.col = column; sheet->selection_cell.row = row; sheet->selection_cell.col = column; sheet->range.row0 = row; @@ -3632,10 +3567,6 @@ psppire_sheet_button_release (GtkWidget *widget, psppire_sheet_real_unselect_range (sheet, NULL); - sheet->active_cell.row = sheet->active_cell.row + - (sheet->drag_range.row0 - sheet->range.row0); - sheet->active_cell.col = sheet->active_cell.col + - (sheet->drag_range.col0 - sheet->range.col0); sheet->selection_cell.row = sheet->selection_cell.row + (sheet->drag_range.row0 - sheet->range.row0); sheet->selection_cell.col = sheet->selection_cell.col + @@ -3657,10 +3588,6 @@ psppire_sheet_button_release (GtkWidget *widget, psppire_sheet_real_unselect_range (sheet, NULL); - sheet->active_cell.row = sheet->active_cell.row + - (sheet->drag_range.row0 - sheet->range.row0); - sheet->active_cell.col = sheet->active_cell.col + - (sheet->drag_range.col0 - sheet->range.col0); if (sheet->drag_range.row0 < sheet->range.row0) sheet->selection_cell.row = sheet->drag_range.row0; if (sheet->drag_range.rowi >= sheet->range.rowi)