Merge pull request #11195 from akallabeth/sdl-kbd-grab

[client,sdl] fix keyboard grab
This commit is contained in:
akallabeth
2025-02-17 05:54:44 +01:00
committed by GitHub
4 changed files with 6 additions and 8 deletions

View File

@@ -373,11 +373,11 @@ BOOL sdlDispContext::handle_window_event(const SDL_WindowEvent* ev)
case SDL_WINDOWEVENT_LEAVE:
WINPR_ASSERT(_sdl);
_sdl->input.keyboard_grab(ev->windowID, SDL_FALSE);
_sdl->input.keyboard_grab(ev->windowID, false);
return TRUE;
case SDL_WINDOWEVENT_ENTER:
WINPR_ASSERT(_sdl);
_sdl->input.keyboard_grab(ev->windowID, SDL_TRUE);
_sdl->input.keyboard_grab(ev->windowID, true);
return _sdl->input.keyboard_focus_in();
case SDL_WINDOWEVENT_FOCUS_GAINED:
case SDL_WINDOWEVENT_TAKE_FOCUS:

View File

@@ -503,8 +503,7 @@ BOOL sdlInput::keyboard_handle_event(const SDL_KeyboardEvent* ev)
if (ev->keysym.scancode == _hotkeyGrab)
{
_sdl->grab_kbd_enabled = !_sdl->grab_kbd_enabled;
keyboard_grab(ev->windowID, _sdl->grab_kbd ? SDL_FALSE : SDL_TRUE);
keyboard_grab(ev->windowID, !_sdl->grab_kbd);
return TRUE;
}
if (ev->keysym.scancode == _hotkeyDisconnect)
@@ -525,7 +524,7 @@ BOOL sdlInput::keyboard_handle_event(const SDL_KeyboardEvent* ev)
ev->repeat, scancode);
}
BOOL sdlInput::keyboard_grab(Uint32 windowID, SDL_bool enable)
BOOL sdlInput::keyboard_grab(Uint32 windowID, bool enable)
{
auto it = _sdl->windows.find(windowID);
if (it == _sdl->windows.end())

View File

@@ -47,7 +47,7 @@ class sdlInput
BOOL keyboard_handle_event(const SDL_KeyboardEvent* ev);
BOOL keyboard_grab(Uint32 windowID, SDL_bool enable);
BOOL keyboard_grab(Uint32 windowID, bool enable);
BOOL mouse_focus(Uint32 windowID);
BOOL mouse_grab(Uint32 windowID, SDL_bool enable);

View File

@@ -475,8 +475,7 @@ BOOL sdlInput::keyboard_handle_event(const SDL_KeyboardEvent* ev)
if (ev->scancode == _hotkeyGrab)
{
_sdl->grab_kbd_enabled = !_sdl->grab_kbd_enabled;
keyboard_grab(ev->windowID, _sdl->grab_kbd);
keyboard_grab(ev->windowID, !_sdl->grab_kbd);
return TRUE;
}
if (ev->scancode == _hotkeyDisconnect)