Refactor input handling in Controller: Remove unused key events, streamline window size handling, and improve event processing for better performance and clarity

This commit is contained in:
scawful
2024-11-10 12:11:17 -05:00
parent 6d4f7974ae
commit 6dd8a36e5c

View File

@@ -59,19 +59,6 @@ void HandleKeyDown(SDL_Event &event, editor::EditorManager &editor) {
io.KeySuper = ((SDL_GetModState() & KMOD_GUI) != 0);
switch (event.key.keysym.sym) {
case SDLK_BACKSPACE:
io.AddKeyEvent(ImGuiKey_Backspace, true);
break;
case SDLK_LSHIFT:
io.AddKeyEvent(ImGuiKey_LeftShift, true);
break;
case SDLK_LCTRL:
case SDLK_RCTRL:
io.AddKeyEvent(ImGuiKey_LeftCtrl, true);
break;
case SDLK_TAB:
io.AddKeyEvent(ImGuiKey_Tab, true);
break;
case SDLK_z:
editor.emulator().snes().SetButtonState(1, 0, true);
break;
@@ -122,19 +109,6 @@ void HandleKeyUp(SDL_Event &event, editor::EditorManager &editor) {
io.KeySuper = ((SDL_GetModState() & KMOD_GUI) != 0);
switch (event.key.keysym.sym) {
case SDLK_BACKSPACE:
io.AddKeyEvent(ImGuiKey_Backspace, false);
break;
case SDLK_LSHIFT:
io.AddKeyEvent(ImGuiKey_LeftShift, false);
break;
case SDLK_LCTRL:
case SDLK_RCTRL:
io.AddKeyEvent(ImGuiKey_LeftCtrl, false);
break;
case SDLK_TAB:
io.AddKeyEvent(ImGuiKey_Tab, false);
break;
case SDLK_z:
editor.emulator().snes().SetButtonState(1, 0, false);
break;
@@ -176,12 +150,6 @@ void HandleKeyUp(SDL_Event &event, editor::EditorManager &editor) {
}
}
void ChangeWindowSizeEvent(SDL_Event &event) {
ImGuiIO &io = ImGui::GetIO();
io.DisplaySize.x = static_cast<float>(event.window.data1);
io.DisplaySize.y = static_cast<float>(event.window.data2);
}
void HandleMouseMovement(int &wheel) {
ImGuiIO &io = ImGui::GetIO();
int mouseX;
@@ -227,6 +195,7 @@ void Controller::OnInput() {
ImGuiIO &io = ImGui::GetIO();
while (SDL_PollEvent(&event)) {
ImGui_ImplSDL2_ProcessEvent(&event);
switch (event.type) {
case SDL_KEYDOWN:
HandleKeyDown(event, editor_manager_);
@@ -234,19 +203,14 @@ void Controller::OnInput() {
case SDL_KEYUP:
HandleKeyUp(event, editor_manager_);
break;
case SDL_TEXTINPUT:
io.AddInputCharactersUTF8(event.text.text);
break;
case SDL_MOUSEWHEEL:
wheel = event.wheel.y;
break;
case SDL_WINDOWEVENT:
switch (event.window.event) {
case SDL_WINDOWEVENT_CLOSE:
active_ = false;
break;
case SDL_WINDOWEVENT_SIZE_CHANGED:
ChangeWindowSizeEvent(event);
io.DisplaySize.x = static_cast<float>(event.window.data1);
io.DisplaySize.y = static_cast<float>(event.window.data2);
break;
default:
break;