checkkeys: don't toggle text input with the left mouse button

This often gets triggered when clicking back and forth between the language bar and the application
This commit is contained in:
Sam Lantinga 2024-06-24 17:27:06 -07:00
parent 377014c430
commit 92b3ce20b1
1 changed files with 10 additions and 10 deletions

View File

@ -346,17 +346,17 @@ static void loop(void)
break; break;
} }
case SDL_EVENT_MOUSE_BUTTON_DOWN: case SDL_EVENT_MOUSE_BUTTON_DOWN:
{ if (event.button.button == SDL_BUTTON_RIGHT) {
SDL_Window *window = SDL_GetWindowFromID(event.button.windowID); SDL_Window *window = SDL_GetWindowFromID(event.button.windowID);
if (SDL_TextInputActive(window)) { if (SDL_TextInputActive(window)) {
SDL_Log("Stopping text input for window %" SDL_PRIu32 "\n", event.button.windowID); SDL_Log("Stopping text input for window %" SDL_PRIu32 "\n", event.button.windowID);
SDL_StopTextInput(window); SDL_StopTextInput(window);
} else { } else {
SDL_Log("Starting text input for window %" SDL_PRIu32 "\n", event.button.windowID); SDL_Log("Starting text input for window %" SDL_PRIu32 "\n", event.button.windowID);
SDL_StartTextInput(window); SDL_StartTextInput(window);
}
} }
break; break;
}
case SDL_EVENT_KEYMAP_CHANGED: case SDL_EVENT_KEYMAP_CHANGED:
SDL_Log("Keymap changed!\n"); SDL_Log("Keymap changed!\n");
PrintKeymap(); PrintKeymap();
@ -379,7 +379,7 @@ static void loop(void)
/* Draw the text */ /* Draw the text */
SDL_SetRenderDrawColor(state->renderers[i], 255, 255, 255, 255); SDL_SetRenderDrawColor(state->renderers[i], 255, 255, 255, 255);
SDL_snprintf(caption, sizeof(caption), "Text input %s (click mouse button to toggle)\n", SDL_TextInputActive(state->windows[i]) ? "enabled" : "disabled"); SDL_snprintf(caption, sizeof(caption), "Text input %s (click right mouse button to toggle)\n", SDL_TextInputActive(state->windows[i]) ? "enabled" : "disabled");
SDLTest_DrawString(state->renderers[i], TEXT_WINDOW_OFFSET_X, TEXT_WINDOW_OFFSET_X, caption); SDLTest_DrawString(state->renderers[i], TEXT_WINDOW_OFFSET_X, TEXT_WINDOW_OFFSET_X, caption);
SDLTest_TextWindowDisplay(textwindows[i], state->renderers[i]); SDLTest_TextWindowDisplay(textwindows[i], state->renderers[i]);