Procházet zdrojové kódy

wayland: Return true for HasScreenKeyboardSupport only if no physical keyboard exists

Ethan Lee před 3 roky
rodič
revize
fc998b8ec9
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 6 1
      src/video/wayland/SDL_waylandkeyboard.c

+ 6 - 1
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 */