gtk2/gdk/wayland
Olivier Fourdan 298221bfba wayland: return child only in device_query_state()
On X11, device_query_state() uses XIQueryPointer() which will return a
child window only if the pointer is within an actual child of the given
window.

Wayland backend would return the pointer->focus window independently of
the given window, but that breaks the logic in get_device_state() and
later in gdk_window_get_device_position_double() because the window is
searched based on coordinates from another window without sibling
relationship, breaking gtkmenu sub-menus further down the line.

Fix the Wayland backend to mimic X11's XIQueryPointer() to return a
child only if really a child of the given window.

That's the most sensible thing to do to fix the issue, but the API here
seems to be modeled after the X11 implementation and the description of
gdk_window_get_device_position_double() is not entirely accurate.

https://bugzilla.gnome.org/show_bug.cgi?id=768016
2016-07-04 09:46:18 +02:00
..
protocol wayland: Add request focus support via gtk_shell 2016-03-10 12:31:15 +08:00
gdkapplaunchcontext-wayland.c wayland: Formatting fixes 2015-02-28 00:02:30 -05:00
gdkcursor-wayland.c wayland: Clean up naming of GdkWaylandDisplay pointers 2016-04-26 08:38:18 -04:00
gdkdevice-wayland.c wayland: return child only in device_query_state() 2016-07-04 09:46:18 +02:00
gdkdisplay-wayland.c wayland: fall back to shm_open if memfd unavailable 2016-06-16 12:02:51 -04:00
gdkdisplay-wayland.h wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkdnd-wayland.c gdk/dnd: Don't use default display when getting cursor 2016-04-26 23:03:24 +08:00
gdkeventsource.c gdk/wayland: use the multi-thread safe wayland API 2016-05-17 22:58:03 -04:00
gdkglcontext-wayland.c wayland: Bind the appropriate OpenGL API 2016-04-25 12:29:37 +01:00
gdkglcontext-wayland.h gl: Drop profile for gdk_window_create_gl_context() 2015-02-12 12:34:28 +00:00
gdkkeys-wayland.c wayland: Avoid unitialized memory reads 2016-05-12 11:38:46 -04:00
gdkmonitor-wayland.c wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkmonitor-wayland.h wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkprivate-wayland.h wayland: Make gdk_wayland_window_get_wl_output() private 2016-05-19 09:48:46 +02:00
gdkscreen-wayland.c wayland: Survive lack of settings 2016-05-19 07:38:33 -04:00
gdkseat-wayland.h wayland: Remove GdkWaylandDataDevice typedef 2016-03-21 17:15:59 +01:00
gdkselection-wayland.c wayland: Separate selection buffers and other per-selection atom data 2016-06-30 14:10:26 +02:00
gdkwayland.h wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkwaylanddevice.h wayland: Add GdkSeat implementation 2015-12-15 00:40:21 +01:00
gdkwaylanddisplay.h wayland: fix rename of wl_shell to xdg_shell 2014-01-20 14:37:33 -05:00
gdkwaylandglcontext.h GL: Follow naming conventions 2014-10-21 23:48:12 -04:00
gdkwaylandmonitor.h wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkwaylandselection.h Drop gdk_wayland_drag_context_get_dnd_window 2015-12-02 00:47:53 -05:00
gdkwaylandwindow.h wayland: Make gdk_wayland_window_get_wl_output() private 2016-05-19 09:48:46 +02:00
gdkwindow-wayland.c wayland: Make sure window titles fit into a wl_buffer 2016-06-08 15:06:51 +02:00
Makefile.am wayland: Port to new monitor api 2016-04-27 23:18:16 -04:00
wm-button-layout-translation.c wayland: Set gtk-decoration-layout 2014-06-06 15:32:59 +02:00
wm-button-layout-translation.h wayland: Set gtk-decoration-layout 2014-06-06 15:32:59 +02:00