summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2011-08-05 13:06:54 -0400
committerEitan Isaacson <eitan@monotonous.org>2011-08-12 09:19:41 +0200
commitc874366acbcbc6ec16f378c38794516ba441c589 (patch)
tree4a9e3a915b82f090821a674fddd707d232d12438 /modules
parente0a8ba4340b199cfe90534d977d4890bf02a4091 (diff)
downloadcaribou-c874366acbcbc6ec16f378c38794516ba441c589.tar.gz
Fix the gtk2 module
Diffstat (limited to 'modules')
-rw-r--r--modules/gtk3/caribou-gtk-module.vala15
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/gtk3/caribou-gtk-module.vala b/modules/gtk3/caribou-gtk-module.vala
index 283e361..f74404a 100644
--- a/modules/gtk3/caribou-gtk-module.vala
+++ b/modules/gtk3/caribou-gtk-module.vala
@@ -29,14 +29,23 @@ namespace Caribou {
}
private Gdk.FilterReturn event_filter (Gdk.XEvent xevent, Gdk.Event evt) {
+ Gdk.Window? gdkwindow;
void* data;
Gtk.Window window;
- if (evt.any.window == null ||
- evt.any.window.get_window_type () != Gdk.WindowType.TOPLEVEL)
+#if GTK2
+ void* pointer = &xevent;
+ X.Event* xev = (X.Event *) pointer;
+ gdkwindow = (Gdk.Window) Gdk.x11_xid_table_lookup_for_display (display, (X.ID) xev.xany.window);
+#else
+ gdkwindow = evt.any.window;
+#endif
+
+ if (gdkwindow == null ||
+ gdkwindow.get_window_type () != Gdk.WindowType.TOPLEVEL)
return Gdk.FilterReturn.CONTINUE;
- Gdk.window_get_user_data (evt.any.window, out data);
+ Gdk.window_get_user_data (gdkwindow, out data);
if (data == null || !(data is Gtk.Window))
return Gdk.FilterReturn.CONTINUE;