Browse Source

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.
Camilla Löwy 3 years ago
parent
commit
3f5dfeaf29
2 changed files with 2 additions and 1 deletions
  1. 1 0
      README.md
  2. 1 1
      src/wl_window.c

+ 1 - 0
README.md

@@ -283,6 +283,7 @@ information on what to include when reporting a bug.
  - [Wayland] Bugfix: Activating a window would emit two input focus events
  - [Wayland] Bugfix: Disable key repeat mechanism when window loses input focus
  - [Wayland] Bugfix: Window hiding and showing did not work (#1492,#1731)
+ - [Wayland] Bugfix: A key being repeated was not released when window lost focus
  - [POSIX] Removed use of deprecated function `gettimeofday`
  - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
  - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)

+ 1 - 1
src/wl_window.c

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