We need to update the temp grab pointer after 
weston_compositor_run_key_binding()
before calling the key handler because it may have installed a new grab.
---

Only update the variable if the binding handler was called.

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

diff --git a/src/compositor.c b/src/compositor.c
index 26c9a95..09de2f6 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1839,9 +1839,11 @@ notify_key(struct wl_seat *seat, uint32_t time, uint32_t 
key,
                *k = key;
        }
 
-       if (grab == &seat->keyboard->default_grab)
+       if (grab == &seat->keyboard->default_grab) {
                weston_compositor_run_key_binding(compositor, ws, time, key,
                                                  state);
+               grab = seat->keyboard->grab;
+       }
 
        grab->interface->key(grab, time, key, state);
        if (mods)
-- 
1.7.7.6

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

Reply via email to