wayland: Fix returning to a window from fullscreen without calling SetWindowSize

This commit is contained in:
Ethan Lee 2021-06-15 00:35:13 -04:00 committed by Sam Lantinga
parent 8da0dd17a1
commit 7f261d3b76
1 changed files with 18 additions and 4 deletions

View File

@ -61,10 +61,10 @@ CommitMinMaxDimensions(SDL_Window *window)
max_width = window->max_w; max_width = window->max_w;
max_height = window->max_h; max_height = window->max_h;
} else { } else {
min_width = window->w; min_width = window->windowed.w;
min_height = window->h; min_height = window->windowed.h;
max_width = window->w; max_width = window->windowed.w;
max_height = window->h; max_height = window->windowed.h;
} }
if (data->shell.xdg) { if (data->shell.xdg) {
@ -1002,6 +1002,20 @@ Wayland_SetWindowFullscreen(_THIS, SDL_Window * window,
{ {
struct wl_output *output = ((SDL_WaylandOutputData*) _display->driverdata)->output; struct wl_output *output = ((SDL_WaylandOutputData*) _display->driverdata)->output;
SetFullscreen(window, fullscreen ? output : NULL); SetFullscreen(window, fullscreen ? output : NULL);
/* The window may have been resized to the output size, so reset this when
* returning to a window
*/
if (!fullscreen) {
SDL_WindowData *wind = (SDL_WindowData*) window->driverdata;
wind->resize.width = window->windowed.w;
wind->resize.height = window->windowed.h;
wind->resize.pending = SDL_TRUE;
if (!(window->flags & SDL_WINDOW_OPENGL)) {
Wayland_HandlePendingResize(window);
}
}
} }
void void