wayland: enable/disable ACTION_RESIZE for fullscreen
parent
9e6fcbe72c
commit
48066984b7
|
@ -138,6 +138,7 @@ void SDL_WAYLAND_UnloadSymbols(void);
|
|||
#define libdecor_frame_unset_fullscreen (*WAYLAND_libdecor_frame_unset_fullscreen)
|
||||
#define libdecor_frame_set_capabilities (*WAYLAND_libdecor_frame_set_capabilities)
|
||||
#define libdecor_frame_unset_capabilities (*WAYLAND_libdecor_frame_unset_capabilities)
|
||||
#define libdecor_frame_has_capability (*WAYLAND_libdecor_frame_has_capability)
|
||||
#define libdecor_frame_map (*WAYLAND_libdecor_frame_map)
|
||||
#define libdecor_state_new (*WAYLAND_libdecor_state_new)
|
||||
#define libdecor_state_free (*WAYLAND_libdecor_state_free)
|
||||
|
|
|
@ -176,6 +176,8 @@ SDL_WAYLAND_SYM(void, libdecor_frame_set_capabilities, (struct libdecor_frame *,
|
|||
enum libdecor_capabilities))
|
||||
SDL_WAYLAND_SYM(void, libdecor_frame_unset_capabilities, (struct libdecor_frame *, \
|
||||
enum libdecor_capabilities))
|
||||
SDL_WAYLAND_SYM(bool, libdecor_frame_has_capability, (struct libdecor_frame *, \
|
||||
enum libdecor_capabilities))
|
||||
SDL_WAYLAND_SYM(void, libdecor_frame_map, (struct libdecor_frame *))
|
||||
SDL_WAYLAND_SYM(struct libdecor_state *, libdecor_state_new, (int, int))
|
||||
SDL_WAYLAND_SYM(void, libdecor_state_free, (struct libdecor_state *))
|
||||
|
|
|
@ -136,9 +136,17 @@ SetFullscreen(SDL_Window *window, struct wl_output *output)
|
|||
return; /* Can't do anything yet, wait for ShowWindow */
|
||||
}
|
||||
if (output) {
|
||||
if (!(window->flags & SDL_WINDOW_RESIZABLE)) {
|
||||
/* ensure that window is resizable before going into fullscreen */
|
||||
libdecor_frame_set_capabilities(wind->shell_surface.libdecor.frame, LIBDECOR_ACTION_RESIZE);
|
||||
}
|
||||
libdecor_frame_set_fullscreen(wind->shell_surface.libdecor.frame, output);
|
||||
} else {
|
||||
libdecor_frame_unset_fullscreen(wind->shell_surface.libdecor.frame);
|
||||
if (!(window->flags & SDL_WINDOW_RESIZABLE)) {
|
||||
/* restore previous RESIZE capability */
|
||||
libdecor_frame_unset_capabilities(wind->shell_surface.libdecor.frame, LIBDECOR_ACTION_RESIZE);
|
||||
}
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue