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 (); }