mirror of
https://github.com/glfw/glfw.git
synced 2024-11-10 00:51:47 +00:00
Wayland: Fix text input not following key repeat
The manual key repeat implementation did not call text input.
This commit is contained in:
parent
bf99587005
commit
1a7da42e6e
@ -288,6 +288,7 @@ information on what to include when reporting a bug.
|
|||||||
- [Wayland] Bugfix: Showing a hidden window did not emit a window refresh event
|
- [Wayland] Bugfix: Showing a hidden window did not emit a window refresh event
|
||||||
- [Wayland] Bugfix: Full screen window creation did not ignore `GLFW_VISIBLE`
|
- [Wayland] Bugfix: Full screen window creation did not ignore `GLFW_VISIBLE`
|
||||||
- [Wayland] Bugfix: Some keys were reported as wrong key or `GLFW_KEY_UNKNOWN`
|
- [Wayland] Bugfix: Some keys were reported as wrong key or `GLFW_KEY_UNKNOWN`
|
||||||
|
- [Wayland] Bugfix: Text input did not repeat along with key repeat
|
||||||
- [POSIX] Removed use of deprecated function `gettimeofday`
|
- [POSIX] Removed use of deprecated function `gettimeofday`
|
||||||
- [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
|
- [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
|
||||||
- [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)
|
- [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)
|
||||||
|
@ -535,7 +535,7 @@ static xkb_keysym_t composeSymbol(xkb_keysym_t sym)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static GLFWbool inputChar(_GLFWwindow* window, uint32_t scancode)
|
GLFWbool _glfwInputTextWayland(_GLFWwindow* window, uint32_t scancode)
|
||||||
{
|
{
|
||||||
const xkb_keysym_t* keysyms;
|
const xkb_keysym_t* keysyms;
|
||||||
const xkb_keycode_t keycode = scancode + 8;
|
const xkb_keycode_t keycode = scancode + 8;
|
||||||
@ -577,7 +577,7 @@ static void keyboardHandleKey(void* data,
|
|||||||
|
|
||||||
if (action == GLFW_PRESS)
|
if (action == GLFW_PRESS)
|
||||||
{
|
{
|
||||||
const GLFWbool shouldRepeat = inputChar(window, scancode);
|
const GLFWbool shouldRepeat = _glfwInputTextWayland(window, scancode);
|
||||||
|
|
||||||
if (shouldRepeat && _glfw.wl.keyboardRepeatRate > 0)
|
if (shouldRepeat && _glfw.wl.keyboardRepeatRate > 0)
|
||||||
{
|
{
|
||||||
|
@ -495,4 +495,5 @@ GLFWbool _glfwGetGammaRampWayland(_GLFWmonitor* monitor, GLFWgammaramp* ramp);
|
|||||||
void _glfwSetGammaRampWayland(_GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
void _glfwSetGammaRampWayland(_GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||||
|
|
||||||
void _glfwAddOutputWayland(uint32_t name, uint32_t version);
|
void _glfwAddOutputWayland(uint32_t name, uint32_t version);
|
||||||
|
GLFWbool _glfwInputTextWayland(_GLFWwindow* window, uint32_t scancode);
|
||||||
|
|
||||||
|
@ -767,6 +767,8 @@ static void handleEvents(int timeout)
|
|||||||
_glfw.wl.keyboardLastScancode,
|
_glfw.wl.keyboardLastScancode,
|
||||||
GLFW_PRESS,
|
GLFW_PRESS,
|
||||||
_glfw.wl.xkb.modifiers);
|
_glfw.wl.xkb.modifiers);
|
||||||
|
_glfwInputTextWayland(_glfw.wl.keyboardFocus,
|
||||||
|
_glfw.wl.keyboardLastScancode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user