hide-behind-fullscreen

This commit is contained in:
Leonardo Hernández Hernández 2022-04-10 22:38:53 -05:00 committed by Leonardo Hernández Hernández
parent fcf3f602af
commit c766bb02f0
No known key found for this signature in database
GPG key ID: E538897EE11B9624
2 changed files with 18 additions and 2 deletions

View file

@ -18,7 +18,7 @@ static const float bordercolor[] = COLOR(0x444444ff);
static const float focuscolor[] = COLOR(0x005577ff);
static const float urgentcolor[] = COLOR(0xff0000ff);
/* To conform the xdg-protocol, set the alpha to zero to restore the old behavior */
static const float fullscreen_bg[] = {0.1, 0.1, 0.1, 1.0}; /* You can also use glsl colors */
static const float fullscreen_bg[] = {0.1, 0.1, 0.1, 0.0}; /* You can also use glsl colors */
static const float default_opacity = 0.75;
/* tagging - TAGCOUNT must be no greater than 31 */

18
dwl.c
View file

@ -536,7 +536,9 @@ applyrules(Client *c)
void
arrange(Monitor *m)
{
Client *c;
LayerSurface *l;
Client *c, *sel = focustop(selmon);
int i;
wl_list_for_each(c, &clients, link) {
if (c->mon == m) {
wlr_scene_node_set_enabled(&c->scene->node, VISIBLEON(c, m));
@ -549,6 +551,20 @@ arrange(Monitor *m)
strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, LENGTH(m->ltsymbol));
if (sel && sel->isfullscreen && VISIBLEON(sel, m)) {
for (i = 3; i > ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND; i--)
wl_list_for_each(l, &sel->mon->layers[i], link)
wlr_scene_node_set_enabled(&l->scene->node, 0);
wl_list_for_each(c, &clients, link)
wlr_scene_node_set_enabled(&c->scene->node, (sel->isfullscreen && c == sel)
|| !sel->isfullscreen);
}
if (!sel || (!sel->isfullscreen && VISIBLEON(sel, m)))
for (i = 3; i > ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND; i--)
wl_list_for_each(l, &m->layers[i], link)
wlr_scene_node_set_enabled(&l->scene->node, 1);
if (m->lt[m->sellt]->arrange)
m->lt[m->sellt]->arrange(m);
motionnotify(0, NULL, 0, 0, 0, 0);