[gtk+] win32: make fixup_event correctly ref all GdkWindow members



commit 361fcabbde2af6e4c8f785cdf6482f366ba4affe
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Nov 17 12:25:56 2011 +0100

    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 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 6fc6f58..16d8195 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 (); 
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]