[mutter/wip/carlosg/popup-implicit-grab-focus: 3/3] wayland: Make implicit grabs during popups be owner_events=TRUE
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/popup-implicit-grab-focus: 3/3] wayland: Make implicit grabs during popups be owner_events=TRUE
- Date: Wed, 9 Jun 2021 19:00:18 +0000 (UTC)
commit fcdda41def19bb474f6f84f4fcea99335cc5ddb3
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Jun 3 16:25:13 2021 +0200
wayland: Make implicit grabs during popups be owner_events=TRUE
Getting crossing events is necessary between client surfaces while
there is a popup grab in effect (e.g. allow press-drag-release in
menus), we should only stick with the focus surface while the pointer
is outside any client surface.
This partially undoes commit 79050004b06 (or, at least, mutter no
longer fixes the bug it claimed to fix). This will be addressed in
gtk4.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1885>
src/wayland/meta-wayland-popup.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
---
diff --git a/src/wayland/meta-wayland-popup.c b/src/wayland/meta-wayland-popup.c
index 23b26cc431..995d5f967e 100644
--- a/src/wayland/meta-wayland-popup.c
+++ b/src/wayland/meta-wayland-popup.c
@@ -113,15 +113,12 @@ popup_grab_focus (MetaWaylandPointerGrab *grab,
if (!meta_wayland_seat_has_pointer (seat))
return;
- if (pointer->button_count > 0)
- return;
-
/* Popup grabs are in owner-events mode (ie, events for the same client
are reported as normal) */
if (surface &&
wl_resource_get_client (surface->resource) == popup_grab->grab_client)
meta_wayland_pointer_set_focus (grab->pointer, surface);
- else
+ else if (pointer->button_count == 0)
meta_wayland_pointer_set_focus (grab->pointer, NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]