static void gdk_x11_device_manager_xi2_select_window_events (GdkEventTranslator *translator,
Window window,
GdkEventMask event_mask);
-
+static GdkWindow * gdk_x11_device_manager_xi2_get_window (GdkEventTranslator *translator,
+ XEvent *xevent);
enum {
PROP_0,
iface->translate_event = gdk_x11_device_manager_xi2_translate_event;
iface->get_handled_events = gdk_x11_device_manager_xi2_get_handled_events;
iface->select_window_events = gdk_x11_device_manager_xi2_select_window_events;
+ iface->get_window = gdk_x11_device_manager_xi2_get_window;
}
static void
g_free (event_mask.mask);
}
+static GdkWindow *
+gdk_x11_device_manager_xi2_get_window (GdkEventTranslator *translator,
+ XEvent *xevent)
+{
+ GdkX11DeviceManagerXI2 *device_manager;
+ XIEvent *ev;
+
+ device_manager = (GdkX11DeviceManagerXI2 *) translator;
+
+ if (xevent->type != GenericEvent ||
+ xevent->xcookie.extension != device_manager->opcode)
+ return NULL;
+
+ ev = (XIEvent *) xevent->xcookie.data;
+
+ return get_event_window (translator, ev);
+}
+
#else /* XINPUT_2 */
static void