]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/view.c: prevent fullscreen with no outputs available
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Mon, 26 Dec 2022 22:10:11 +0000 (23:10 +0100)
committerJohan Malm <johanmalm@users.noreply.github.com>
Tue, 3 Jan 2023 19:46:31 +0000 (19:46 +0000)
src/view.c

index 61f7904f019d7c47689b328738549f5e563923b2..e932b366160a0a1071cea0477b9b07e50d9ffcfc 100644 (file)
@@ -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