summaryrefslogtreecommitdiff
path: root/gtk/gtkdnd.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-02-23 00:43:26 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-02-23 00:43:26 +0000
commit148e7663341edbb31ea03cdb2c82bccf8003ef02 (patch)
tree5e8f927b65b3dee5f54c31cdf365d0c990deb7d9 /gtk/gtkdnd.c
parentd5aed59bbcefe89a34da745a0f7e2abe7bcdcae6 (diff)
downloadgtk+-148e7663341edbb31ea03cdb2c82bccf8003ef02.tar.gz
When sending events to windows with a proxy, set the window field in the
Mon Feb 22 19:06:30 1999 Owen Taylor <otaylor@redhat.com> * gdk/gdkdnd.c (xdnd_send_*): When sending events to windows with a proxy, set the window field in the sent event to the original window, not to the proxy. (This gives consistency with Motif, and also provides information to the destination that it wouldn't have otherwise). * gtk/gtkdnd.c: Fixed some refcount leaks for windows. * gdk/gdkdnd.c (xdnd_send_xevent): When sending Xdnd event to the root window, set the event mask to ButtonPressMask. Hopefully, this should give us compatibility with kfm, if it uses the Qt style of root window drops.
Diffstat (limited to 'gtk/gtkdnd.c')
-rw-r--r--gtk/gtkdnd.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
index c82d449f7e..55103740a4 100644
--- a/gtk/gtkdnd.c
+++ b/gtk/gtkdnd.c
@@ -1385,6 +1385,9 @@ gtk_drag_dest_motion (GtkWidget *widget,
context->suggested_action,
context->actions, time);
+ if (!site->proxy_window && dest_window)
+ gdk_window_unref (dest_window);
+
selection = gdk_drag_get_selection (info->proxy_source->context);
if (selection &&
selection != gdk_drag_get_selection (info->context))
@@ -1494,7 +1497,7 @@ gtk_drag_dest_drop (GtkWidget *widget,
current_event->dnd.y_root,
&dest_window, &proto);
}
-
+
gdk_drag_motion (info->proxy_source->context,
dest_window, proto,
current_event->dnd.x_root,
@@ -1502,6 +1505,9 @@ gtk_drag_dest_drop (GtkWidget *widget,
context->suggested_action,
context->actions, time);
+ if (!site->proxy_window && dest_window)
+ gdk_window_unref (dest_window);
+
selection = gdk_drag_get_selection (info->proxy_source->context);
if (selection &&
selection != gdk_drag_get_selection (info->context))