From 361fcabbde2af6e4c8f785cdf6482f366ba4affe Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 17 Nov 2011 12:25:56 +0100 Subject: [PATCH] win32: make fixup_event correctly ref all GdkWindow members This fixes some crashes related to owner changes and selections. --- gdk/win32/gdkevents-win32.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 6fc6f58216..16d81956eb 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -833,6 +833,14 @@ fixup_event (GdkEvent *event) (event->any.type == GDK_LEAVE_NOTIFY)) && (event->crossing.subwindow != NULL)) g_object_ref (event->crossing.subwindow); + if (((event->any.type == GDK_SELECTION_CLEAR) || + (event->any.type == GDK_SELECTION_NOTIFY) || + (event->any.type == GDK_SELECTION_REQUEST)) && + (event->selection.requestor != NULL)) + g_object_ref (event->selection.requestor); + if ((event->any.type == GDK_OWNER_CHANGE) && + (event->owner_change.owner != NULL)) + g_object_ref (event->owner_change.owner); event->any.send_event = InSendMessage (); }