X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpspp-sheet-view.c;h=a777809cfcd3a908fb5699722e9d79658978efd0;hb=c040ea5dd9a6c87e45b864974b27ef79a64660e7;hp=d5637a1d14574bffe2c49e69394c6d1e2b0cb9dc;hpb=c7b09a12fae1611db7f1e7e00fa1e92c19d9fa37;p=pspp diff --git a/src/ui/gui/pspp-sheet-view.c b/src/ui/gui/pspp-sheet-view.c index d5637a1d14..a777809cfc 100644 --- a/src/ui/gui/pspp-sheet-view.c +++ b/src/ui/gui/pspp-sheet-view.c @@ -2158,8 +2158,9 @@ pspp_sheet_view_button_press (GtkWidget *widget, else anchor = NULL; - if ((anchor && !gtk_tree_path_compare (anchor, path)) - || !_pspp_sheet_view_column_has_editable_cell (column)) + if (pspp_sheet_view_column_get_quick_edit (column) + || (anchor && !gtk_tree_path_compare (anchor, path)) + || !_pspp_sheet_view_column_has_editable_cell (column)) { GtkCellEditable *cell_editable = NULL; @@ -2474,6 +2475,18 @@ pspp_sheet_view_button_release (GtkWidget *widget, { PsppSheetView *tree_view = PSPP_SHEET_VIEW (widget); + if (tree_view->priv->edited_column && + tree_view->priv->edited_column->editable_widget) + { + /* When a column is in quick-edit mode, the initial button press that + * starts editing implicitly grabs the pointer, so that the corresponding + * release doesn't get passed along to the GtkWidget created by the + * press. Pass the release along explicitly. */ + gtk_widget_event (GTK_WIDGET (tree_view->priv->edited_column->editable_widget), + (GdkEvent *) event); + return FALSE; + } + if (PSPP_SHEET_VIEW_FLAG_SET (tree_view, PSPP_SHEET_VIEW_IN_COLUMN_DRAG)) return pspp_sheet_view_button_release_drag_column (widget, event);