diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 72d9baf5a6..32f57a2ca5 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -517,7 +517,8 @@ gdk_wayland_device_query_state (GdkDevice *device, if (root_window) *root_window = gdk_screen_get_root_window (default_screen); if (child_window) - *child_window = pointer->focus; + /* Set child only if actually a child of the given window, as XIQueryPointer() does */ + *child_window = g_list_find (window->children, pointer->focus) ? pointer->focus : NULL; if (mask) *mask = device_get_modifiers (device);