From 2e5314c34059aba6683088f403b445105ec1910f Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Thu, 26 Jun 2003 16:37:43 +0000 Subject: [PATCH] select items on "button_press_event" not on "clicked". Makes the grid view 2003-06-26 Sven Neumann * app/widgets/gimpcontainergridview.c: select items on "button_press_event" not on "clicked". Makes the grid view behave like the list view and fixes bug #115797. --- ChangeLog | 6 ++++++ app/widgets/gimpcontainergridview.c | 27 ++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97e7e65b03..ae5fd55adb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-06-26 Sven Neumann + + * app/widgets/gimpcontainergridview.c: select items on + "button_press_event" not on "clicked". Makes the grid view behave + like the list view and fixes bug #115797. + 2003-06-26 Sven Neumann * app/gui/file-new-dialog.c (file_new_dialog_new): don't set the diff --git a/app/widgets/gimpcontainergridview.c b/app/widgets/gimpcontainergridview.c index 72ea51a1ce..b6c5e10ee1 100644 --- a/app/widgets/gimpcontainergridview.c +++ b/app/widgets/gimpcontainergridview.c @@ -74,8 +74,8 @@ static gboolean gimp_container_grid_view_select_item (GimpContainerView *v gpointer insert_data); static void gimp_container_grid_view_clear_items (GimpContainerView *view); static void gimp_container_grid_view_set_preview_size (GimpContainerView *view); -static void gimp_container_grid_view_item_selected (GtkWidget *widget, - GdkModifierType state, +static gboolean gimp_container_grid_view_item_selected(GtkWidget *widget, + GdkEventButton *bevent, gpointer data); static void gimp_container_grid_view_item_activated (GtkWidget *widget, gpointer data); @@ -384,7 +384,7 @@ gimp_container_grid_view_insert_item (GimpContainerView *view, gtk_widget_show (preview); - g_signal_connect (preview, "clicked", + g_signal_connect (preview, "button_press_event", G_CALLBACK (gimp_container_grid_view_item_selected), view); g_signal_connect (preview, "double_clicked", @@ -481,16 +481,21 @@ gimp_container_grid_view_set_preview_size (GimpContainerView *view) gtk_widget_queue_resize (grid_view->wrap_box); } -static void -gimp_container_grid_view_item_selected (GtkWidget *widget, - GdkModifierType state, - gpointer data) +static gboolean +gimp_container_grid_view_item_selected (GtkWidget *widget, + GdkEventButton *bevent, + gpointer data) { - if (GTK_WIDGET_CAN_FOCUS (data) && !GTK_WIDGET_HAS_FOCUS (data)) - gtk_widget_grab_focus (GTK_WIDGET (data)); + if (bevent->type == GDK_BUTTON_PRESS && bevent->button == 1) + { + if (GTK_WIDGET_CAN_FOCUS (data) && !GTK_WIDGET_HAS_FOCUS (data)) + gtk_widget_grab_focus (GTK_WIDGET (data)); - gimp_container_view_item_selected (GIMP_CONTAINER_VIEW (data), - GIMP_PREVIEW (widget)->viewable); + gimp_container_view_item_selected (GIMP_CONTAINER_VIEW (data), + GIMP_PREVIEW (widget)->viewable); + } + + return FALSE; } static void