mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-25 09:17:12 +01:00
wayland: For libdecor, dispatch immediately after setting fullscreen
Reference: #4578
This commit is contained in:
parent
022235012c
commit
0f5b8a99f0
@ -948,7 +948,24 @@ Wayland_SetWindowFullscreen(_THIS, SDL_Window * window,
|
|||||||
SDL_VideoData *viddata = (SDL_VideoData *) _this->driverdata;
|
SDL_VideoData *viddata = (SDL_VideoData *) _this->driverdata;
|
||||||
SetFullscreen(window, fullscreen ? output : NULL);
|
SetFullscreen(window, fullscreen ? output : NULL);
|
||||||
|
|
||||||
WAYLAND_wl_display_flush( viddata->display );
|
WAYLAND_wl_display_flush(viddata->display);
|
||||||
|
#ifdef HAVE_LIBDECOR_H
|
||||||
|
/* For libdecor we _have_ to dispatch immediately, because libdecor state
|
||||||
|
* strongly depends on the "current" state of the window. For example, if an
|
||||||
|
* application calls SetWindowSize right after this, libdecor will still
|
||||||
|
* think the window is fullscreen and not floating because configuration has
|
||||||
|
* not yet occurred, so the call will get completely ignored! So, take the
|
||||||
|
* time penalty and ensure that libdecor state matches SDL state.
|
||||||
|
*
|
||||||
|
* TODO: If Wayland_SetWindowSize ever stops checking for floating state,
|
||||||
|
* this can be removed.
|
||||||
|
*
|
||||||
|
* -flibit
|
||||||
|
*/
|
||||||
|
if (viddata->shell.libdecor) {
|
||||||
|
WAYLAND_wl_display_dispatch(viddata->display);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user