Disable text input before creating windows

This commit is contained in:
Cameron Gutman
2026-05-14 21:45:22 -05:00
parent 9cbba106ad
commit dedb0c0327
2 changed files with 11 additions and 6 deletions
+6 -6
View File
@@ -632,6 +632,12 @@ bool Session::initialize(QQuickWindow* qtWindow)
return false; return false;
} }
// Stop text input. SDL enables it by default
// when we initialize the video subsystem, but this
// causes an IME popup when certain keys are held down
// on macOS.
SDL_StopTextInput();
LiInitializeStreamConfiguration(&m_StreamConfig); LiInitializeStreamConfiguration(&m_StreamConfig);
m_StreamConfig.width = m_Preferences->width; m_StreamConfig.width = m_Preferences->width;
m_StreamConfig.height = m_Preferences->height; m_StreamConfig.height = m_Preferences->height;
@@ -1907,12 +1913,6 @@ void Session::exec()
} }
} }
// Stop text input. SDL enables it by default
// when we initialize the video subsystem, but this
// causes an IME popup when certain keys are held down
// on macOS.
SDL_StopTextInput();
// Disable the screen saver if requested // Disable the screen saver if requested
if (m_Preferences->keepAwake) { if (m_Preferences->keepAwake) {
SDL_DisableScreenSaver(); SDL_DisableScreenSaver();
+5
View File
@@ -89,6 +89,11 @@ SDL_Window* StreamUtils::createTestWindow()
SDL_Window* testWindow; SDL_Window* testWindow;
Uint32 baseFlags = 0; Uint32 baseFlags = 0;
// Stop text input before creating the test window to avoid sdl2-compat
// starting text input on the new window. This might trigger the IME to
// be displayed.
SDL_StopTextInput();
// Test windows are always hidden // Test windows are always hidden
baseFlags |= SDL_WINDOW_HIDDEN; baseFlags |= SDL_WINDOW_HIDDEN;