Compare commits

...

4 Commits

Author SHA1 Message Date
nee-wom
54d64ccb85
Merge 168d72fc11 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
nee-wom
168d72fc11 macOS EGL: fixed initial layer contents scale
The initial event viewDidChangeBackingProperties arrives
before the layer is attached to the view.
Hence the layer keeps its default scale, which is not
always correct.
2024-08-15 15:54:33 +02:00
5 changed files with 21 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

@ -942,6 +942,8 @@ GLFWbool _glfwCreateWindowCocoa(_GLFWwindow* window,
// need to get the layer for EGL window surface creation. // need to get the layer for EGL window surface creation.
[window->ns.view setWantsLayer:YES]; [window->ns.view setWantsLayer:YES];
window->ns.layer = [window->ns.view layer]; window->ns.layer = [window->ns.view layer];
if (window->ns.scaleFramebuffer && window->ns.layer)
[window->ns.layer setContentsScale:[window->ns.object backingScaleFactor]];
if (!_glfwInitEGL()) if (!_glfwInitEGL())
return GLFW_FALSE; return GLFW_FALSE;

View File

@ -1267,17 +1267,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;
} }
} }