[gtk+/gtk-2-16] Avoid unintended side-effect in gdk_window_get_events
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+/gtk-2-16] Avoid unintended side-effect in gdk_window_get_events
- Date: Mon, 11 May 2009 12:14:22 -0400 (EDT)
commit 52325ccd669ebd24de873bb0949d68d6dad17fb0
Author: Matthias Clasen <mclasen redhat com>
Date: Sun May 10 02:08:41 2009 -0400
Avoid unintended side-effect in gdk_window_get_events
Calling gdk_window_get_events() had the side-effect of letting
property change notification through to the application, which
was not intended. Now we keep StructureNotify and PropertyNotify
filtered out when they were before. Reported in bug 582003.
---
gdk/x11/gdkwindow-x11.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 8296674..77033fe 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -3538,18 +3538,20 @@ gdk_window_x11_get_events (GdkWindow *window)
{
XWindowAttributes attrs;
GdkEventMask event_mask;
+ GdkEventMask filtered;
if (GDK_WINDOW_DESTROYED (window))
return 0;
else
{
XGetWindowAttributes (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
+ GDK_WINDOW_XID (window),
&attrs);
-
event_mask = x_event_mask_to_gdk_event_mask (attrs.your_event_mask);
- GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
-
+ /* if property change was filtered out before, keep it filtered out */
+ filtered = GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK;
+ GDK_WINDOW_OBJECT (window)->event_mask = event_mask & ((GDK_WINDOW_OBJECT (window)->event_mask & filtered) | ~filtered);
+
return event_mask;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]