window: invoke all listener callbacks at once

This commit is contained in:
Hyper 2024-11-10 17:56:29 +00:00
parent 2104f97b81
commit 5b54f777e4

View file

@ -57,9 +57,6 @@ int Window_OnSDLEvent(void*, SDL_Event* event)
} }
} }
for (auto listener : Window::s_listeners)
listener->OnKeyDown(event->key.keysym.sym);
break; break;
} }
@ -72,9 +69,6 @@ int Window_OnSDLEvent(void*, SDL_Event* event)
m_isFullscreenKeyReleased = true; m_isFullscreenKeyReleased = true;
break; break;
} }
for (auto listener : Window::s_listeners)
listener->OnKeyUp(event->key.keysym.sym);
} }
case SDL_WINDOWEVENT: case SDL_WINDOWEVENT:
@ -115,8 +109,19 @@ int Window_OnSDLEvent(void*, SDL_Event* event)
} }
for (auto listener : Window::s_listeners) for (auto listener : Window::s_listeners)
{
listener->OnSDLEvent(event); 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; return 0;
} }