From fc998b8ec963101466ee9827423ee29b270d93a2 Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Mon, 8 Nov 2021 12:37:10 -0500 Subject: [PATCH] wayland: Return true for HasScreenKeyboardSupport only if no physical keyboard exists --- src/video/wayland/SDL_waylandkeyboard.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 */