Wayland: Fix some keys not repeating

According to the libxkbcommon documentation[1], xkb_keymap_key_repeats
requires keymap and keycode as input:

int xkb_keymap_key_repeats( struct xkb_keymap * keymap,
			    xkb_keycode_t key)

However, in inputChar in wl_input.c we are passing in xkb_keysym_t,
which was a type mismatch.

This results in some keys not repeating when they should and vice versa.

[1] https://xkbcommon.org/doc/current/group__components.html#ga9d7f998efeca98b3afc7c257bbac90a8

Closes #1908.

(cherry picked from commit 216d5e8402)
This commit is contained in:
Koray Kilinc 2021-06-01 13:40:44 -07:00 committed by Camilla Löwy
parent cf70b10692
commit 33ff23dc07
2 changed files with 3 additions and 1 deletions

View File

@ -127,6 +127,7 @@ information on what to include when reporting a bug.
- [Cocoa] Bugfix: The MoltenVK layer contents scale was updated only after
related events were emitted
- [X11] Bugfix: Changing `GLFW_FLOATING` could leak memory
- [Wayland] Bugfix: Some keys were not repeating in Wayland (#1908)
- [NSGL] Bugfix: Defining `GL_SILENCE_DEPRECATION` externally caused
a duplicate definition warning (#1840)
- [EGL] Bugfix: The `GLFW_DOUBLEBUFFER` context attribute was ignored (#1843)
@ -228,6 +229,7 @@ skills.
- Arseny Kapoulkine
- Cem Karan
- Osman Keskin
- Koray Kilinc
- Josh Kilmer
- Byunghoon Kim
- Cameron King

View File

@ -560,7 +560,7 @@ static GLFWbool inputChar(_GLFWwindow* window, uint32_t key)
}
}
return xkb_keymap_key_repeats(_glfw.wl.xkb.keymap, syms[0]);
return xkb_keymap_key_repeats(_glfw.wl.xkb.keymap, code);
}
static void keyboardHandleKey(void* data,