mirror of
https://github.com/glfw/glfw.git
synced 2025-12-20 06:01:56 +00:00
Compare commits
6 Commits
24cf0811b6
...
e5f7fa7cab
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5f7fa7cab | ||
|
|
506c11ba43 | ||
|
|
d30d63313c | ||
|
|
9ae058b208 | ||
|
|
6836e650bc | ||
|
|
5e1ec2444f |
@ -229,7 +229,7 @@ video tutorials.
|
||||
- Brandon Schaefer
|
||||
- Sebastian Schuberth
|
||||
- Scr3amer
|
||||
- Jan Schuerkamp
|
||||
- Jan Schürkamp
|
||||
- Christian Sdunek
|
||||
- Matt Sealey
|
||||
- Steve Sexton
|
||||
|
||||
@ -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: `glfwInit` would segfault on compositor with no seat (#2517)
|
||||
- [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)
|
||||
- [Null] Added Vulkan 'window' surface creation via `VK_EXT_headless_surface`
|
||||
- [Null] Added EGL context creation on Mesa via `EGL_MESA_platform_surfaceless`
|
||||
|
||||
5
deps/nuklear.h
vendored
5
deps/nuklear.h
vendored
@ -423,6 +423,11 @@ NK_STATIC_ASSERT(sizeof(nk_rune) >= 4);
|
||||
NK_STATIC_ASSERT(sizeof(nk_size) >= 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
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
static void handleKeyEvent(_GLFWjoystick* js, int code, int value)
|
||||
{
|
||||
_glfwInputJoystickButton(js,
|
||||
js->linjs.keyMap[code - BTN_MISC],
|
||||
js->linjs.keyMap[code],
|
||||
value ? GLFW_PRESS : GLFW_RELEASE);
|
||||
}
|
||||
|
||||
@ -190,12 +190,28 @@ static GLFWbool openJoystickDevice(const char* path)
|
||||
|
||||
int axisCount = 0, buttonCount = 0, hatCount = 0;
|
||||
|
||||
for (int code = BTN_MISC; code < KEY_CNT; code++)
|
||||
// This loop should stop at KEY_CNT instead of KEY_MAX. However, we are
|
||||
// terminating the loop one iteration early to maintain compatibility with
|
||||
// the SDL gamepad mappings.
|
||||
for (int code = BTN_JOYSTICK; code < KEY_MAX; code++)
|
||||
{
|
||||
if (!isBitSet(code, keyBits))
|
||||
continue;
|
||||
|
||||
linjs.keyMap[code - BTN_MISC] = buttonCount;
|
||||
linjs.keyMap[code] = buttonCount;
|
||||
buttonCount++;
|
||||
}
|
||||
|
||||
// Originally, this range was not mapped, but some controllers now output
|
||||
// these values. Appending them to the end of the list maintains both
|
||||
// backwards compatibility with older versions of GLFW, and with the SDL
|
||||
// gamepad mappings.
|
||||
for (int code = 0; code < BTN_JOYSTICK; code++)
|
||||
{
|
||||
if (!isBitSet(code, keyBits))
|
||||
continue;
|
||||
|
||||
linjs.keyMap[code] = buttonCount;
|
||||
buttonCount++;
|
||||
}
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ typedef struct _GLFWjoystickLinux
|
||||
{
|
||||
int fd;
|
||||
char path[PATH_MAX];
|
||||
int keyMap[KEY_CNT - BTN_MISC];
|
||||
int keyMap[KEY_CNT];
|
||||
int absMap[ABS_CNT];
|
||||
struct input_absinfo absInfo[ABS_CNT];
|
||||
int hats[4][2];
|
||||
|
||||
@ -1267,17 +1267,21 @@ static void handleEvents(double* timeout)
|
||||
|
||||
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,
|
||||
translateKey(_glfw.wl.keyRepeatScancode),
|
||||
_glfw.wl.keyRepeatScancode,
|
||||
GLFW_PRESS,
|
||||
_glfw.wl.xkb.modifiers);
|
||||
inputText(_glfw.wl.keyboardFocus, _glfw.wl.keyRepeatScancode);
|
||||
for (uint64_t i = 0; i < repeats; i++)
|
||||
{
|
||||
_glfwInputKey(_glfw.wl.keyboardFocus,
|
||||
translateKey(_glfw.wl.keyRepeatScancode),
|
||||
_glfw.wl.keyRepeatScancode,
|
||||
GLFW_PRESS,
|
||||
_glfw.wl.xkb.modifiers);
|
||||
inputText(_glfw.wl.keyboardFocus, _glfw.wl.keyRepeatScancode);
|
||||
}
|
||||
|
||||
event = GLFW_TRUE;
|
||||
}
|
||||
|
||||
event = GLFW_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user