summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkevents-win32.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2005-01-23 00:38:17 +0000
committerTor Lillqvist <tml@src.gnome.org>2005-01-23 00:38:17 +0000
commit736f4c87588d28919e9d2f27c904f17c78fc5d5e (patch)
tree3cbaaf1d5d5f7b2ac99af1a7c1031cf4c3d335b5 /gdk/win32/gdkevents-win32.c
parent26629f7a935e81f63a03ff3ba71be1208b789f5e (diff)
downloadgdk-pixbuf-736f4c87588d28919e9d2f27c904f17c78fc5d5e.tar.gz
Fix for #163702, from Ivan Wong:
2005-01-23 Tor Lillqvist <tml@novell.com> Fix for #163702, from Ivan Wong: * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkglobals-win32.c: New flag _ignore_destroy_clipboard. * gdk/win32/gdkevents-win32.c (gdk_event_translate): Handle WM_DESTROYCLIPBOARD. Unless _ignore_destroy_clipboard, generate a GDK_SELECTION_CLEAR event. * gdk/win32/gdkselection-win32.c (gdk_selection_owner_set_for_display): Set _ignore_destroy_clipboard when emptying the clipboard ourselves. (gdk_selection_send_notify_for_display): Remove the artifical GDK_SELECTION_CLEAR event generation.
Diffstat (limited to 'gdk/win32/gdkevents-win32.c')
-rw-r--r--gdk/win32/gdkevents-win32.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 3e14cf904..e8560cfad 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -3353,7 +3353,19 @@ gdk_event_translate (GdkDisplay *display,
handle_display_change ();
break;
-
+ case WM_DESTROYCLIPBOARD:
+ if (!_ignore_destroy_clipboard)
+ {
+ event = gdk_event_new (GDK_SELECTION_CLEAR);
+ event->selection.window = window;
+ event->selection.selection = GDK_SELECTION_CLIPBOARD;
+ event->selection.time = _gdk_win32_get_next_tick (msg->time);
+ append_event (display, event);
+ }
+ else
+ return_val = TRUE;
+ break;
+
#ifdef HAVE_WINTAB
/* Handle WINTAB events here, as we know that gdkinput.c will
* use the fixed WT_DEFBASE as lcMsgBase, and we thus can use the