---
 src/shell.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/shell.c b/src/shell.c
index 2b61202..482c9b8 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1176,7 +1176,7 @@ zoom_grab_key(struct wl_keyboard_grab *grab,
        struct weston_output *output;
        struct weston_zoom_grab *zoom;
 
-       if (!(wd->modifier_state & MODIFIER_SUPER)) {
+       if (!(wd->modifier_state & MODIFIER_SUPER) && 
wd->input_device.keys.size == 0) {
                zoom = container_of(grab, struct weston_zoom_grab, grab);
                wl_input_device_end_keyboard_grab(device, time);
                free(zoom);
@@ -1911,7 +1911,7 @@ switcher_key(struct wl_keyboard_grab *grab,
        struct weston_input_device *device =
                (struct weston_input_device *) grab->input_device;
 
-       if ((device->modifier_state & MODIFIER_SUPER) == 0) {
+       if ((device->modifier_state & MODIFIER_SUPER) == 0 && 
device->input_device.keys.size == 0) {
                switcher_destroy(switcher, time);
        } else if (key == KEY_TAB && state) {
                switcher_next(switcher);
-- 
1.7.4.1

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to