From e9aac4ce8ff01fa0d7c471b90921d1a13ff671b2 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Mon, 26 Dec 2022 23:10:11 +0100 Subject: [PATCH] src/view.c: prevent fullscreen with no outputs available --- src/view.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/view.c b/src/view.c index 61f7904f..e932b366 100644 --- a/src/view.c +++ b/src/view.c @@ -396,6 +396,7 @@ view_apply_tiled_geometry(struct view *view, struct output *output) static void view_apply_fullscreen_geometry(struct view *view, struct wlr_output *wlr_output) { + assert(wlr_output); struct output *output = output_from_wlr_output(view->server, wlr_output); struct wlr_box box = { 0 }; @@ -619,6 +620,13 @@ view_set_fullscreen(struct view *view, bool fullscreen, if (fullscreen != !view->fullscreen) { 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) { 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( view->toplevel_handle, fullscreen); } - if (!wlr_output) { - wlr_output = view_wlr_output(view); - } if (fullscreen) { /* * Fullscreen via keybind or client request cancels