src/view.c: prevent fullscreen with no outputs available

This commit is contained in:
Consolatis 2022-12-26 23:10:11 +01:00 committed by Johan Malm
parent de8042bff5
commit e9aac4ce8f

View file

@ -396,6 +396,7 @@ view_apply_tiled_geometry(struct view *view, struct output *output)
static void static void
view_apply_fullscreen_geometry(struct view *view, struct wlr_output *wlr_output) view_apply_fullscreen_geometry(struct view *view, struct wlr_output *wlr_output)
{ {
assert(wlr_output);
struct output *output = struct output *output =
output_from_wlr_output(view->server, wlr_output); output_from_wlr_output(view->server, wlr_output);
struct wlr_box box = { 0 }; struct wlr_box box = { 0 };
@ -619,6 +620,13 @@ view_set_fullscreen(struct view *view, bool fullscreen,
if (fullscreen != !view->fullscreen) { if (fullscreen != !view->fullscreen) {
return; return;
} }
if (!wlr_output) {
wlr_output = view_wlr_output(view);
if (!wlr_output && fullscreen) {
/* Prevent fullscreen with no available outputs */
return;
}
}
if (view->impl->set_fullscreen) { if (view->impl->set_fullscreen) {
view->impl->set_fullscreen(view, fullscreen); view->impl->set_fullscreen(view, fullscreen);
} }
@ -626,9 +634,6 @@ view_set_fullscreen(struct view *view, bool fullscreen,
wlr_foreign_toplevel_handle_v1_set_fullscreen( wlr_foreign_toplevel_handle_v1_set_fullscreen(
view->toplevel_handle, fullscreen); view->toplevel_handle, fullscreen);
} }
if (!wlr_output) {
wlr_output = view_wlr_output(view);
}
if (fullscreen) { if (fullscreen) {
/* /*
* Fullscreen via keybind or client request cancels * Fullscreen via keybind or client request cancels