diff --git a/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp b/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp index aecb468..dfd4240 100644 --- a/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp +++ b/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp @@ -2022,6 +2022,11 @@ void GpDisplayDriver_SDL_GL2::Run() SDL_StopTextInput(); } + // Handle dismissal of on-screen keyboard + const bool isTextInputActuallyActive = SDL_IsTextInputActive(); + m_textInputEnabled = isTextInputActuallyActive; + m_properties.m_systemServices->SetTextInputEnabled(isTextInputActuallyActive); + GpDisplayDriverTickStatus_t tickStatus = PresentFrameAndSync(); if (tickStatus == GpDisplayDriverTickStatuses::kFatalFault || tickStatus == GpDisplayDriverTickStatuses::kApplicationTerminated) { diff --git a/PortabilityLayer/PLEditboxWidget.cpp b/PortabilityLayer/PLEditboxWidget.cpp index 28f73d0..41993b3 100644 --- a/PortabilityLayer/PLEditboxWidget.cpp +++ b/PortabilityLayer/PLEditboxWidget.cpp @@ -781,6 +781,9 @@ namespace PortabilityLayer if (mouseEvent.m_eventType == GpMouseEventTypes::kUp) { + // Re-enable text input if it was dismissed + PortabilityLayer::HostSystemServices::GetInstance()->SetTextInputEnabled(true); + m_caratScrollLocked = false; m_isDraggingSelection = false; return WidgetHandleStates::kDigested;