[mutter/wip/carlosg/wayland-key-focus-on-grabs: 19/19] core: Account ClutterStage grabs on Wayland key focus synchronization
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/wayland-key-focus-on-grabs: 19/19] core: Account ClutterStage grabs on Wayland key focus synchronization
- Date: Wed, 20 Apr 2022 14:38:35 +0000 (UTC)
commit 91ae72acdf49068c08975865a1c8ef00781955c3
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Apr 6 16:07:07 2022 +0200
core: Account ClutterStage grabs on Wayland key focus synchronization
When switching between the existence and not of a stage ClutterGrab, we
would correctly attempt to synchronize key focus from the perspective of
the Wayland clients.
But this synchronization should do its own checks about existing stage
grabs before determining a client window has key focus or not.
Add that check, so that grabs correctly unfocus the keyboard in Wayland
clients, in addition to pointers and touch.
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2194
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2366>
src/core/display.c | 2 ++
1 file changed, 2 insertions(+)
---
diff --git a/src/core/display.c b/src/core/display.c
index 5f99578a69..a1c5c2d912 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1431,6 +1431,8 @@ meta_display_sync_wayland_input_focus (MetaDisplay *display)
focus_window = NULL;
else if (is_no_focus_xwindow)
focus_window = NULL;
+ else if (clutter_stage_get_grab_actor (CLUTTER_STAGE (stage)))
+ focus_window = NULL;
else if (display->focus_window && display->focus_window->surface)
focus_window = display->focus_window;
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]