Compare commits

...

5 Commits

Author SHA1 Message Date
WillyJL
185eaaece5
Merge eb96b4aad5 into 768e81a0eb 2025-08-14 17:55:00 +02:00
Jan Hendrik Farr
768e81a0eb Wayland: Fix key repeat halting
Key repeat shoud only be halted when the repeating key
is released, not when another key is released.
2025-08-14 15:35:04 +02:00
Willy-JL
eb96b4aad5 Last missing _GNU_SOURCE 2024-11-22 05:59:44 +00:00
Willy-JL
80b7713126 Fix linux/input-event-codes.h when not present 2024-11-22 05:50:28 +00:00
Willy-JL
e3b41e1cf1 Fix time.h includes missing _GNU_SOURCE 2024-11-22 05:44:51 +00:00
7 changed files with 15 additions and 2 deletions

View File

@ -68,6 +68,7 @@ video tutorials.
- Jan Ekström - Jan Ekström
- Siavash Eliasi - Siavash Eliasi
- er-azh - er-azh
- Jan Hendrik Farr
- Ahmad Fatoum - Ahmad Fatoum
- Nikita Fediuchin - Nikita Fediuchin
- Felipe Ferreira - Felipe Ferreira

View File

@ -138,6 +138,7 @@ information on what to include when reporting a bug.
- [Wayland] Bugfix: Retrieved cursor position would be incorrect when hovering over - [Wayland] Bugfix: Retrieved cursor position would be incorrect when hovering over
fallback decorations fallback decorations
- [Wayland] Bugfix: Fallback decorations would report scroll events - [Wayland] Bugfix: Fallback decorations would report scroll events
- [Wayland] Bugfix: Keyboard repeat events halted when any key is released (#2568)
- [X11] Bugfix: Running without a WM could trigger an assert (#2593,#2601,#2631) - [X11] Bugfix: Running without a WM could trigger an assert (#2593,#2601,#2631)
- [Null] Added Vulkan 'window' surface creation via `VK_EXT_headless_surface` - [Null] Added Vulkan 'window' surface creation via `VK_EXT_headless_surface`
- [Null] Added EGL context creation on Mesa via `EGL_MESA_platform_surfaceless` - [Null] Added EGL context creation on Mesa via `EGL_MESA_platform_surfaceless`

View File

@ -24,6 +24,8 @@
// //
//======================================================================== //========================================================================
#define _GNU_SOURCE
#if defined(_MSC_VER) #if defined(_MSC_VER)
// Make MS math.h define M_PI // Make MS math.h define M_PI
#define _USE_MATH_DEFINES #define _USE_MATH_DEFINES

View File

@ -25,6 +25,8 @@
// //
//======================================================================== //========================================================================
#define _GNU_SOURCE
#include "internal.h" #include "internal.h"
#if defined(GLFW_BUILD_LINUX_JOYSTICK) #if defined(GLFW_BUILD_LINUX_JOYSTICK)

View File

@ -25,6 +25,8 @@
// //
//======================================================================== //========================================================================
#define _GNU_SOURCE
#include "internal.h" #include "internal.h"
#if defined(GLFW_BUILD_POSIX_TIMER) #if defined(GLFW_BUILD_POSIX_TIMER)

View File

@ -24,6 +24,8 @@
// //
//======================================================================== //========================================================================
#define _GNU_SOURCE
#include "internal.h" #include "internal.h"
#if defined(_GLFW_WAYLAND) #if defined(_GLFW_WAYLAND)

View File

@ -40,7 +40,9 @@
#include <sys/mman.h> #include <sys/mman.h>
#include <sys/timerfd.h> #include <sys/timerfd.h>
#include <poll.h> #include <poll.h>
#if __has_include(<linux/input-event-codes.h>)
#include <linux/input-event-codes.h> #include <linux/input-event-codes.h>
#endif
#include "wayland-client-protocol.h" #include "wayland-client-protocol.h"
#include "xdg-shell-client-protocol.h" #include "xdg-shell-client-protocol.h"
@ -1838,10 +1840,11 @@ static void keyboardHandleKey(void* userData,
timer.it_value.tv_sec = _glfw.wl.keyRepeatDelay / 1000; timer.it_value.tv_sec = _glfw.wl.keyRepeatDelay / 1000;
timer.it_value.tv_nsec = (_glfw.wl.keyRepeatDelay % 1000) * 1000000; timer.it_value.tv_nsec = (_glfw.wl.keyRepeatDelay % 1000) * 1000000;
}
}
timerfd_settime(_glfw.wl.keyRepeatTimerfd, 0, &timer, NULL); timerfd_settime(_glfw.wl.keyRepeatTimerfd, 0, &timer, NULL);
}
} else if (scancode == _glfw.wl.keyRepeatScancode) {
timerfd_settime(_glfw.wl.keyRepeatTimerfd, 0, &timer, NULL);
}
_glfwInputKey(window, key, scancode, action, _glfw.wl.xkb.modifiers); _glfwInputKey(window, key, scancode, action, _glfw.wl.xkb.modifiers);