]> Pileus Git - ~andy/gtk/commitdiff
x11: Fill in event->any.window before calling filter functions
authorBenjamin Otte <otte@redhat.com>
Tue, 1 Feb 2011 04:55:10 +0000 (05:55 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 1 Feb 2011 05:33:01 +0000 (06:33 +0100)
a) We advertise it for GdkFilterFunc
b) It's necessary to differentiate between different event types with
   multi-backend GTK.

gdk/x11/gdkeventsource.c

index 892e68662ac83120ce64d3581577b30914c36e0a..ec18202adff43977756093cb4e80e88fa71076c0 100644 (file)
@@ -155,6 +155,10 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
   GdkFilterReturn result;
   GdkWindow *filter_window;
 
+  filter_window = gdk_event_source_get_filter_window (event_source, xevent);
+  if (filter_window)
+    event->any.window = g_object_ref (filter_window);
+
   /* Run default filters */
   if (_gdk_default_filters)
     {
@@ -171,15 +175,11 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
         return event;
     }
 
-  filter_window = gdk_event_source_get_filter_window (event_source, xevent);
-
   if (filter_window)
     {
       /* Apply per-window filters */
       GdkFilterReturn result;
 
-      event->any.window = g_object_ref (filter_window);
-
       if (filter_window->filters)
        {
          result = gdk_event_apply_filters (xevent, event,