diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-02-18 18:06:55 -0500 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-02-18 18:06:55 -0500 |
commit | 756a412436742a24588804be4ca3b6b54ad2900f (patch) | |
tree | c363807d2c3c8a03e228ebd4bb6bc17492f4e8de | |
parent | be16c2fe7198422660e8ea0c829b3738083b12ba (diff) | |
download | mutter-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.c | 12 |
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) |