From 5b54f777e409017e7aca29516b045e86b12cb1af Mon Sep 17 00:00:00 2001 From: Hyper <34012267+hyperbx@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:56:29 +0000 Subject: [PATCH] window: invoke all listener callbacks at once --- UnleashedRecomp/ui/window.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/UnleashedRecomp/ui/window.cpp b/UnleashedRecomp/ui/window.cpp index 5b673f4e..7c3dabc5 100644 --- a/UnleashedRecomp/ui/window.cpp +++ b/UnleashedRecomp/ui/window.cpp @@ -57,9 +57,6 @@ int Window_OnSDLEvent(void*, SDL_Event* event) } } - for (auto listener : Window::s_listeners) - listener->OnKeyDown(event->key.keysym.sym); - break; } @@ -72,9 +69,6 @@ int Window_OnSDLEvent(void*, SDL_Event* event) m_isFullscreenKeyReleased = true; break; } - - for (auto listener : Window::s_listeners) - listener->OnKeyUp(event->key.keysym.sym); } case SDL_WINDOWEVENT: @@ -115,8 +109,19 @@ int Window_OnSDLEvent(void*, SDL_Event* event) } for (auto listener : Window::s_listeners) + { listener->OnSDLEvent(event); + if (event->type == SDL_KEYDOWN) + { + listener->OnKeyDown(event->key.keysym.sym); + } + else if (event->type == SDL_KEYUP) + { + listener->OnKeyUp(event->key.keysym.sym); + } + } + return 0; }