diff --git a/src/video/wayland/SDL_waylandkeyboard.c b/src/video/wayland/SDL_waylandkeyboard.c index 747a886dd..3695e1ec0 100644 --- a/src/video/wayland/SDL_waylandkeyboard.c +++ b/src/video/wayland/SDL_waylandkeyboard.c @@ -140,8 +140,13 @@ Wayland_SetTextInputRect(_THIS, SDL_Rect *rect) SDL_bool Wayland_HasScreenKeyboardSupport(_THIS) { + /* In reality we just want to return tru when the screen keyboard is the + * _only_ way to get text input. So, in addition to checking for the text + * input protocol, make sure we don't have any physical keyboards either. + */ SDL_VideoData *driverdata = _this->driverdata; - return (driverdata->text_input_manager != NULL); + return (driverdata->input->keyboard == NULL && + driverdata->text_input_manager != NULL); } #endif /* SDL_VIDEO_DRIVER_WAYLAND */