Compare commits

...

6 Commits

Author SHA1 Message Date
WillyJL
aa98a5aa81
Merge eb96b4aad5 into 506c11ba43 2025-07-05 14:09:06 -05:00
Jan Schürkamp
506c11ba43
Wayland: Ignore key repeat events when no window has keyboard focus (#2732)
* Wayland: Ignore key repeat events when no window has keyboard focus
2025-07-05 19:16:08 +02:00
Doug Binks
d30d63313c Examples: disable MSVC warning C5287 in nuklear.h
Latest MSVC has a warning `operands are different enum types` which this disables until upstream nuklear fixes this
2025-07-05 19:12:15 +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
8 changed files with 29 additions and 9 deletions

View File

@ -229,7 +229,7 @@ video tutorials.
- Brandon Schaefer - Brandon Schaefer
- Sebastian Schuberth - Sebastian Schuberth
- Scr3amer - Scr3amer
- Jan Schuerkamp - Jan Schürkamp
- Christian Sdunek - Christian Sdunek
- Matt Sealey - Matt Sealey
- Steve Sexton - Steve Sexton

View File

@ -129,6 +129,7 @@ information on what to include when reporting a bug.
- [Wayland] Bugfix: The fractional scaling related objects were not destroyed - [Wayland] Bugfix: The fractional scaling related objects were not destroyed
- [Wayland] Bugfix: `glfwInit` would segfault on compositor with no seat (#2517) - [Wayland] Bugfix: `glfwInit` would segfault on compositor with no seat (#2517)
- [Wayland] Bugfix: A drag entering a non-GLFW surface could cause a segfault - [Wayland] Bugfix: A drag entering a non-GLFW surface could cause a segfault
- [Wayland] Bugfix: Ignore key repeat events when no window has keyboard focus (#2727)
- [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`

5
deps/nuklear.h vendored
View File

@ -423,6 +423,11 @@ NK_STATIC_ASSERT(sizeof(nk_rune) >= 4);
NK_STATIC_ASSERT(sizeof(nk_size) >= sizeof(void*)); NK_STATIC_ASSERT(sizeof(nk_size) >= sizeof(void*));
NK_STATIC_ASSERT(sizeof(nk_ptr) >= sizeof(void*)); NK_STATIC_ASSERT(sizeof(nk_ptr) >= sizeof(void*));
#if defined(_MSC_VER)
/* disable `operands are different enum types` warning on MSVC */
#pragma warning( disable: 5287 )
#endif
/* ============================================================================ /* ============================================================================
* *
* API * API

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"
@ -1267,17 +1269,21 @@ static void handleEvents(double* timeout)
if (read(_glfw.wl.keyRepeatTimerfd, &repeats, sizeof(repeats)) == 8) if (read(_glfw.wl.keyRepeatTimerfd, &repeats, sizeof(repeats)) == 8)
{ {
for (uint64_t i = 0; i < repeats; i++) if(_glfw.wl.keyboardFocus)
{ {
_glfwInputKey(_glfw.wl.keyboardFocus, for (uint64_t i = 0; i < repeats; i++)
translateKey(_glfw.wl.keyRepeatScancode), {
_glfw.wl.keyRepeatScancode, _glfwInputKey(_glfw.wl.keyboardFocus,
GLFW_PRESS, translateKey(_glfw.wl.keyRepeatScancode),
_glfw.wl.xkb.modifiers); _glfw.wl.keyRepeatScancode,
inputText(_glfw.wl.keyboardFocus, _glfw.wl.keyRepeatScancode); GLFW_PRESS,
_glfw.wl.xkb.modifiers);
inputText(_glfw.wl.keyboardFocus, _glfw.wl.keyRepeatScancode);
}
event = GLFW_TRUE;
} }
event = GLFW_TRUE;
} }
} }