compositor: Update grab variable in notify_key() after binding handler.
authorScott Moreau <oreaus@gmail.com>
Mon, 11 Jun 2012 20:59:31 +0000 (14:59 -0600)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 11 Jun 2012 22:24:16 +0000 (18:24 -0400)
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.

src/compositor.c

index 26c9a95..09de2f6 100644 (file)
@@ -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)