Răsfoiți Sursa

wayland: Maximize/Restore should set the relevant window flags.

Also, Maximize should be ignored for fixed-size windows.
Ethan Lee 4 ani în urmă
părinte
comite
c69fde348f
1 a modificat fișierele cu 14 adăugiri și 0 ștergeri
  1. 14 0
      src/video/wayland/SDL_waylandwindow.c

+ 14 - 0
src/video/wayland/SDL_waylandwindow.c

@@ -850,6 +850,11 @@ Wayland_RestoreWindow(_THIS, SDL_Window * window)
     SDL_WindowData *wind = window->driverdata;
     const SDL_VideoData *viddata = (const SDL_VideoData *) _this->driverdata;
 
+    /* Set this flag now even if we never actually maximized, eventually
+     * ShowWindow will take care of it along with the other window state.
+     */
+    window->flags &= ~SDL_WINDOW_MAXIMIZED;
+
     /* Note that xdg-shell does NOT provide a way to unset minimize! */
     if (viddata->shell.xdg) {
         if (wind->shell_surface.xdg.roleobj.toplevel == NULL) {
@@ -894,6 +899,15 @@ Wayland_MaximizeWindow(_THIS, SDL_Window * window)
     SDL_WindowData *wind = window->driverdata;
     SDL_VideoData *viddata = (SDL_VideoData *) _this->driverdata;
 
+    if (!(window->flags & SDL_WINDOW_RESIZABLE)) {
+        return;
+    }
+
+    /* Set this flag now even if we don't actually maximize yet, eventually
+     * ShowWindow will take care of it along with the other window state.
+     */
+    window->flags |= SDL_WINDOW_MAXIMIZED;
+
     if (viddata->shell.xdg) {
         if (wind->shell_surface.xdg.roleobj.toplevel == NULL) {
             return; /* Can't do anything yet, wait for ShowWindow */