]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view: show fullscreen views above top-layer
authorJohan Malm <jgm323@gmail.com>
Mon, 7 Mar 2022 21:18:23 +0000 (21:18 +0000)
committerJohan Malm <jgm323@gmail.com>
Mon, 7 Mar 2022 21:20:44 +0000 (21:20 +0000)
See https://github.com/LBCrion/sfwbar/issues/24

include/ssd.h
src/view.c

index fed6ba0c06ceedd81a9d789196e51e0269af53d3..74bc535c4a82c23130f24d502cb08e9ba1ee97df 100644 (file)
@@ -8,7 +8,7 @@
 #define SSD_HEIGHT 26    /* TODO: use theme->title_height */
 #define BUTTON_COUNT 4
 #define BUTTON_WIDTH 26
-#define EXTENDED_AREA 20
+#define EXTENDED_AREA 8
 
 #define FOR_EACH(tmp, ...) \
 { \
index 0bf04693e2c6fbda2d74f958970b594e8b4a21d5..4d661e041ada8b20686bc87f973875f2da2dc97d 100644 (file)
@@ -295,6 +295,9 @@ 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) {
                if (!view->maximized) {
                        view->unmaximized_geometry.x = view->x;
@@ -302,10 +305,6 @@ view_set_fullscreen(struct view *view, bool fullscreen,
                        view->unmaximized_geometry.width = view->w;
                        view->unmaximized_geometry.height = view->h;
                }
-
-               if (!wlr_output) {
-                       wlr_output = view_wlr_output(view);
-               }
                view->fullscreen = wlr_output;
                view_apply_fullscreen_geometry(view, view->fullscreen);
        } else {
@@ -317,6 +316,12 @@ view_set_fullscreen(struct view *view, bool fullscreen,
                }
                view->fullscreen = false;
        }
+
+       /* Show fullscreen views above top-layer */
+       struct output *output =
+               output_from_wlr_output(view->server, wlr_output);
+       uint32_t top = ZWLR_LAYER_SHELL_V1_LAYER_TOP;
+       wlr_scene_node_set_enabled(&output->layer_tree[top]->node, !fullscreen);
 }
 
 void