summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-02-18 18:06:55 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2014-02-18 18:06:55 -0500
commit756a412436742a24588804be4ca3b6b54ad2900f (patch)
treec363807d2c3c8a03e228ebd4bb6bc17492f4e8de
parentbe16c2fe7198422660e8ea0c829b3738083b12ba (diff)
downloadmutter-756a412436742a24588804be4ca3b6b54ad2900f.tar.gz
pointer: Make nested grabs work
Something noticed on code inspection. If we have a popup grab, it will always return FALSE. The code here clearly meant to continue if we had an existing popup grab from an existing client.
-rw-r--r--src/wayland/meta-wayland-pointer.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c
index f5f6cdf5f..d01507f54 100644
--- a/src/wayland/meta-wayland-pointer.c
+++ b/src/wayland/meta-wayland-pointer.c
@@ -589,15 +589,13 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
if (pointer->grab != &pointer->default_grab)
{
- if (pointer->grab->interface == &popup_grab_interface)
- {
- grab = (MetaWaylandPopupGrab*)pointer->grab;
+ if (pointer->grab->interface != &popup_grab_interface)
+ return FALSE;
- if (wl_resource_get_client (surface->resource) != grab->grab_client)
- return FALSE;
- }
+ grab = (MetaWaylandPopupGrab*)pointer->grab;
- return FALSE;
+ if (wl_resource_get_client (surface->resource) != grab->grab_client)
+ return FALSE;
}
if (pointer->grab == &pointer->default_grab)