view: show fullscreen views above top-layer

See https://github.com/LBCrion/sfwbar/issues/24
This commit is contained in:
Johan Malm 2022-03-07 21:18:23 +00:00
parent d34efad7bb
commit 6b8c10dcd4
2 changed files with 10 additions and 5 deletions

View file

@ -8,7 +8,7 @@
#define SSD_HEIGHT 26 /* TODO: use theme->title_height */ #define SSD_HEIGHT 26 /* TODO: use theme->title_height */
#define BUTTON_COUNT 4 #define BUTTON_COUNT 4
#define BUTTON_WIDTH 26 #define BUTTON_WIDTH 26
#define EXTENDED_AREA 20 #define EXTENDED_AREA 8
#define FOR_EACH(tmp, ...) \ #define FOR_EACH(tmp, ...) \
{ \ { \

View file

@ -295,6 +295,9 @@ 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) {
if (!view->maximized) { if (!view->maximized) {
view->unmaximized_geometry.x = view->x; 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.width = view->w;
view->unmaximized_geometry.height = view->h; view->unmaximized_geometry.height = view->h;
} }
if (!wlr_output) {
wlr_output = view_wlr_output(view);
}
view->fullscreen = wlr_output; view->fullscreen = wlr_output;
view_apply_fullscreen_geometry(view, view->fullscreen); view_apply_fullscreen_geometry(view, view->fullscreen);
} else { } else {
@ -317,6 +316,12 @@ view_set_fullscreen(struct view *view, bool fullscreen,
} }
view->fullscreen = false; 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 void