diff options
Diffstat (limited to 'src/wayland/meta-xwayland-grab-keyboard.c')
-rw-r--r-- | src/wayland/meta-xwayland-grab-keyboard.c | 24 |
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); } |