diff options
author | Dan Winship <danw@gnome.org> | 2011-08-05 13:06:54 -0400 |
---|---|---|
committer | Eitan Isaacson <eitan@monotonous.org> | 2011-08-12 09:19:41 +0200 |
commit | c874366acbcbc6ec16f378c38794516ba441c589 (patch) | |
tree | 4a9e3a915b82f090821a674fddd707d232d12438 /modules | |
parent | e0a8ba4340b199cfe90534d977d4890bf02a4091 (diff) | |
download | caribou-c874366acbcbc6ec16f378c38794516ba441c589.tar.gz |
Fix the gtk2 module
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gtk3/caribou-gtk-module.vala | 15 |
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; |