diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2000-05-16 01:09:44 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2000-05-16 01:09:44 +0800 |
commit | e927ce214f28163a2159129e2d4771da274d5611 (patch) | |
tree | c37a8adae2aa79b6d5d3d7ebe111ebacc6ad05c5 /shell/e-storage-set-view.c | |
parent | 98317c656590737ced646d6fb4bd65e527c7e178 (diff) | |
download | gsoc2013-evolution-e927ce214f28163a2159129e2d4771da274d5611.tar.gz gsoc2013-evolution-e927ce214f28163a2159129e2d4771da274d5611.tar.zst gsoc2013-evolution-e927ce214f28163a2159129e2d4771da274d5611.zip |
Fixed drag and drop so that it properly handles pointer grabbing in
the widget with `gtk_grab_add' and `gtk_grab_remove'. Removed leaks
from Iain's patch. Moved shortcut view initialization from the model
into the view.
svn path=/trunk/; revision=3047
Diffstat (limited to 'shell/e-storage-set-view.c')
-rw-r--r-- | shell/e-storage-set-view.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index 0c0761996b..a63ab66e27 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -154,9 +154,12 @@ button_press_event (GtkWidget *widget, gdk_pointer_ungrab (GDK_CURRENT_TIME); gdk_flush (); + gtk_grab_remove (widget); + gdk_pointer_grab (GTK_CLIST (widget)->clist_window, FALSE, GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, NULL, NULL, event->time); + gtk_grab_add (widget); return TRUE; } @@ -201,6 +204,7 @@ button_release_event (GtkWidget *widget, if (! priv->in_drag && priv->selected_row_path != NULL) { gdk_pointer_ungrab (GDK_CURRENT_TIME); + gtk_grab_remove (widget); gdk_flush (); gtk_signal_emit (GTK_OBJECT (widget), signals[FOLDER_SELECTED], @@ -624,6 +628,8 @@ e_storage_set_view_set_current_folder (EStorageSetView *storage_set_view, } gtk_ctree_select (GTK_CTREE (storage_set_view), node); + + gtk_signal_emit (GTK_OBJECT (storage_set_view), signals[FOLDER_SELECTED], path); } |