summaryrefslogtreecommitdiff
path: root/gdk/broadway
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-08-08 19:45:09 -0400
committerMatthias Clasen <mclasen@redhat.com>2017-08-11 15:45:24 -0400
commit9859f8f69f004dd16c2fc54614c121c5852226b6 (patch)
treeb273418a33395cf03fdc56b8b4beb8bcf21bda66 /gdk/broadway
parentc409fca703cd5e8c90b2843aa2613b34405284b9 (diff)
downloadgtk+-9859f8f69f004dd16c2fc54614c121c5852226b6.tar.gz
Allow passing a NULL window to gdk_device_query_state
Interpret NULL as "root window" here - we only have one screen nowadays, so there is no choice involved, and this will let us avoid dealing with the root window in the fontend code.
Diffstat (limited to 'gdk/broadway')
-rw-r--r--gdk/broadway/gdkdevice-broadway.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/gdk/broadway/gdkdevice-broadway.c b/gdk/broadway/gdkdevice-broadway.c
index b3abec01f7..4a6bf680b1 100644
--- a/gdk/broadway/gdkdevice-broadway.c
+++ b/gdk/broadway/gdkdevice-broadway.c
@@ -149,14 +149,10 @@ gdk_broadway_device_query_state (GdkDevice *device,
gdouble *win_y,
GdkModifierType *mask)
{
- GdkWindow *toplevel;
- GdkWindowImplBroadway *impl;
GdkDisplay *display;
GdkBroadwayDisplay *broadway_display;
- GdkScreen *screen;
gint32 device_root_x, device_root_y;
guint32 mouse_toplevel_id;
- GdkWindow *mouse_toplevel;
guint32 mask32;
if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
@@ -165,15 +161,11 @@ gdk_broadway_device_query_state (GdkDevice *device,
display = gdk_device_get_display (device);
broadway_display = GDK_BROADWAY_DISPLAY (display);
- impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
- toplevel = impl->wrapper;
-
_gdk_broadway_server_query_mouse (broadway_display->server,
&mouse_toplevel_id,
&device_root_x,
&device_root_y,
&mask32);
- mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GUINT_TO_POINTER (mouse_toplevel_id));
if (root_x)
*root_x = device_root_x;
@@ -187,6 +179,17 @@ gdk_broadway_device_query_state (GdkDevice *device,
*mask = mask32;
if (child_window)
{
+ GdkWindowImplBroadway *impl;
+ GdkWindow *toplevel;
+ GdkWindow *mouse_toplevel;
+
+ if (window == NULL)
+ window = gdk_get_default_root_window ();
+
+ impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
+ toplevel = impl->wrapper;
+
+ mouse_toplevel = g_hash_table_lookup (broadway_display->id_ht, GUINT_TO_POINTER (mouse_toplevel_id));
if (gdk_window_get_window_type (toplevel) == GDK_WINDOW_ROOT)
{
*child_window = mouse_toplevel;