summaryrefslogtreecommitdiff
path: root/src/wayland/meta-xwayland-grab-keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wayland/meta-xwayland-grab-keyboard.c')
-rw-r--r--src/wayland/meta-xwayland-grab-keyboard.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/wayland/meta-xwayland-grab-keyboard.c b/src/wayland/meta-xwayland-grab-keyboard.c
index c3d6c68fa..69213b65a 100644
--- a/src/wayland/meta-xwayland-grab-keyboard.c
+++ b/src/wayland/meta-xwayland-grab-keyboard.c
@@ -87,9 +87,14 @@ meta_xwayland_keyboard_grab_end (MetaXwaylandKeyboardActiveGrab *active_grab)
if (seat->keyboard->grab->interface->key == meta_xwayland_keyboard_grab_key)
{
+ MetaWaylandCompositor *compositor =
+ meta_wayland_seat_get_compositor (active_grab->seat);
+ MetaContext *context = meta_wayland_compositor_get_context (compositor);
+ MetaDisplay *display = meta_context_get_display (context);
+
meta_wayland_keyboard_end_grab (active_grab->keyboard_grab.keyboard);
meta_wayland_keyboard_set_focus (active_grab->keyboard_grab.keyboard, NULL);
- meta_display_sync_wayland_input_focus (meta_get_display ());
+ meta_display_sync_wayland_input_focus (display);
}
if (!active_grab->surface)
@@ -193,14 +198,14 @@ application_is_in_pattern_array (MetaWindow *window,
static gboolean
meta_xwayland_grab_is_granted (MetaWindow *window)
{
- MetaBackend *backend;
- MetaSettings *settings;
+ MetaDisplay *display = meta_window_get_display (window);
+ MetaContext *context = meta_display_get_context (display);
+ MetaBackend *backend = meta_context_get_backend (context);
+ MetaSettings *settings = meta_backend_get_settings (backend);
GPtrArray *allow_list;
GPtrArray *deny_list;
gboolean may_grab;
- backend = meta_get_backend ();
- settings = meta_backend_get_settings (backend);
/* Check whether the window is in the deny list */
meta_settings_get_xwayland_grab_patterns (settings, &allow_list, &deny_list);
@@ -223,16 +228,15 @@ meta_xwayland_grab_is_granted (MetaWindow *window)
static gboolean
meta_xwayland_grab_should_lock_focus (MetaWindow *window)
{
- MetaBackend *backend;
- MetaSettings *settings;
+ MetaDisplay *display = meta_window_get_display (window);
+ MetaContext *context = meta_display_get_context (display);
+ MetaBackend *backend = meta_context_get_backend (context);
+ MetaSettings *settings = meta_backend_get_settings (backend);
/* Lock focus applies to O-R windows which never receive keyboard focus otherwise */
if (!window->override_redirect)
return FALSE;
- backend = meta_get_backend ();
- settings = meta_backend_get_settings (backend);
-
return meta_settings_are_xwayland_grabs_allowed (settings);
}