Wayland: Fix repeated key not released on defocus

Platform code should not generate key events with GLFW_REPEAT.
GLFW_PRESS is translated into GLFW_REPEAT by shared code based on the
key state cache.

This confused the automatic key release logic into not generating an
event with GLFW_RELEASE for a key being repeated when the window lost
input focus.

(cherry picked from commit 3f5dfeaf29)
This commit is contained in:
Camilla Löwy 2021-12-26 22:51:20 +01:00
parent 5f0b316c24
commit ec934edfbf
2 changed files with 2 additions and 1 deletions

View File

@ -128,6 +128,7 @@ information on what to include when reporting a bug.
- [Wayland] Bugfix: Activating a window would emit two input focus events - [Wayland] Bugfix: Activating a window would emit two input focus events
- [Wayland] Bugfix: Disable key repeat mechanism when window loses input focus - [Wayland] Bugfix: Disable key repeat mechanism when window loses input focus
- [Wayland] Bugfix: Window hiding and showing did not work (#1492,#1731) - [Wayland] Bugfix: Window hiding and showing did not work (#1492,#1731)
- [Wayland] Bugfix: A key being repeated was not released when window lost focus
## Contact ## Contact

View File

@ -870,7 +870,7 @@ static void handleEvents(int timeout)
_glfwInputKey(_glfw.wl.keyboardFocus, _glfwInputKey(_glfw.wl.keyboardFocus,
_glfw.wl.keyboardLastKey, _glfw.wl.keyboardLastKey,
_glfw.wl.keyboardLastScancode, _glfw.wl.keyboardLastScancode,
GLFW_REPEAT, GLFW_PRESS,
_glfw.wl.xkb.modifiers); _glfw.wl.xkb.modifiers);
} }
} }