diff options
author | Matthias Clasen <mclasen@redhat.com> | 2017-08-08 19:45:09 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2017-08-11 15:45:24 -0400 |
commit | 9859f8f69f004dd16c2fc54614c121c5852226b6 (patch) | |
tree | b273418a33395cf03fdc56b8b4beb8bcf21bda66 /gdk/broadway | |
parent | c409fca703cd5e8c90b2843aa2613b34405284b9 (diff) | |
download | gtk+-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.c | 19 |
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; |