Why did you move the code out of the first if statement and into a duplicate if statement? If this needs to be done later, could the whole if/else statement be moved down (ie move those idle_inhibit/release calls down to the same point).

On 02/06/2015 09:06 AM, Giulio Camuffo wrote:
The serial can be checked against the one passed to wl_shell.set_popup
or equivalent.
---
  src/input.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/input.c b/src/input.c
index fa4fc4e..a0a817f 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1321,8 +1321,6 @@ notify_key(struct weston_seat *seat, uint32_t time, 
uint32_t key,

        if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
                weston_compositor_idle_inhibit(compositor);
-               keyboard->grab_key = key;
-               keyboard->grab_time = time;
        } else {
                weston_compositor_idle_release(compositor);
        }
@@ -1361,6 +1359,13 @@ notify_key(struct weston_seat *seat, uint32_t time, 
uint32_t key,
                                      key,
                                      state);
        }
+
+       if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
+               keyboard->grab_serial =
+                       wl_display_get_serial(compositor->wl_display);
+               keyboard->grab_time = time;
+               keyboard->grab_key = key;
+       }
  }

  WL_EXPORT void

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

Reply via email to