diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-05-15 22:27:42 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-05-15 22:27:42 +0000 |
commit | f642876f0c633a614b82f47808580ce4fbcec622 (patch) | |
tree | 08b84be7c2c5d85f831b0dd2ffa306276e9496d1 /gtk/gtkdnd.c | |
parent | 70d78734c5c9469bc0863136159f1ad1ac229627 (diff) | |
download | gtk+-f642876f0c633a614b82f47808580ce4fbcec622.tar.gz |
Don't call gdk_pointer_grab() to change the cursor if we've already
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Diffstat (limited to 'gtk/gtkdnd.c')
-rw-r--r-- | gtk/gtkdnd.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index ab7b35ef46..0682db2b2c 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -101,6 +101,8 @@ struct _GtkDragSourceInfo guint drop_timeout; /* Timeout for aborting drop */ guint destroy_icon : 1; /* If true, destroy icon_window */ + guint have_grab : 1; /* Do we still have the pointer grab + */ }; struct _GtkDragDestSite @@ -1897,6 +1899,8 @@ gtk_drag_begin (GtkWidget *widget, } } + info->have_grab = TRUE; + return info->context; } @@ -2456,7 +2460,7 @@ _gtk_drag_source_handle_event (GtkWidget *widget, } } } - else + else if (info->have_grab) { cursor = gtk_drag_get_cursor (gtk_widget_get_screen (widget), event->dnd.context->action); @@ -3022,6 +3026,8 @@ gtk_drag_end (GtkDragSourceInfo *info, guint32 time) GtkWidget *source_widget = info->widget; GdkDisplay *display = gtk_widget_get_display (source_widget); + info->have_grab = FALSE; + gdk_display_pointer_ungrab (display, time); gdk_display_keyboard_ungrab (display, time); gtk_grab_remove (info->ipc_widget); |