[gtk+] win32: Always pass a window to the default event filters



commit 033fb5a879b0d3043e768e278e418255467d81d3
Author: Benjamin Otte <otte gnome org>
Date:   Sun Feb 7 23:48:46 2016 +0100

    win32: Always pass a window to the default event filters
    
    This has to happen or the event filter cannot identify what type
    of display the event is from (ie if it's an XEvent, a broadway
    event or a win32 MSG.

 gdk/win32/gdkevents-win32.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 109fc55..7f0a138 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -936,8 +936,7 @@ apply_event_filters (GdkWindow  *window,
   GList *tmp_list;
 
   event = gdk_event_new (GDK_NOTHING);
-  if (window != NULL)
-    event->any.window = g_object_ref (window);
+  event->any.window = g_object_ref (window);
   ((GdkEventPrivate *)event)->flags |= GDK_EVENT_PENDING;
 
   /* I think GdkFilterFunc semantics require the passed-in event
@@ -1913,11 +1912,15 @@ gdk_event_translate (MSG  *msg,
 
   int i;
 
+  window = gdk_win32_handle_table_lookup (msg->hwnd);
+
   if (_gdk_default_filters)
     {
       /* Apply global filters */
 
-      GdkFilterReturn result = apply_event_filters (NULL, msg, &_gdk_default_filters);
+      GdkFilterReturn result = apply_event_filters (window ? window : gdk_screen_get_root_window 
(gdk_display_get_default_screen (_gdk_display)),
+                                                    msg,
+                                                    &_gdk_default_filters);
 
       /* If result is GDK_FILTER_CONTINUE, we continue as if nothing
        * happened. If it is GDK_FILTER_REMOVE or GDK_FILTER_TRANSLATE,
@@ -1927,8 +1930,6 @@ gdk_event_translate (MSG  *msg,
        return TRUE;
     }
 
-  window = gdk_win32_handle_table_lookup (msg->hwnd);
-
   if (window == NULL)
     {
       /* XXX Handle WM_QUIT here ? */


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