Run key bindings on keyboard focus in
This is mainly for X11's benefit; the common case is using Logo+S to take a screenshot, where GNOME Shell has grabbed Logo, and replays the event down to the nested compositor after S is pressed. This means we get an enter event with both Logo and S down, and even if Shell delivers the key press event for S (which isn't mandatory, and not all window managers do), then we never run the binding since notify_key realises that S is already down and exits early. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
c6587ea155
commit
ef17267d38
@ -1937,6 +1937,12 @@ notify_keyboard_focus_in(struct wl_seat *seat, struct wl_array *keys,
|
|||||||
WL_KEYBOARD_KEY_STATE_PRESSED);
|
WL_KEYBOARD_KEY_STATE_PRESSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Run key bindings after we've updated the state. */
|
||||||
|
wl_array_for_each(k, &seat->keyboard->keys) {
|
||||||
|
weston_compositor_run_key_binding(compositor, ws, 0, *k,
|
||||||
|
WL_KEYBOARD_KEY_STATE_PRESSED);
|
||||||
|
}
|
||||||
|
|
||||||
surface = ws->saved_kbd_focus;
|
surface = ws->saved_kbd_focus;
|
||||||
|
|
||||||
if (surface) {
|
if (surface) {
|
||||||
|
Loading…
Reference in New Issue
Block a user