diff options
author | Forrest Bushstone <fgb.1@protonmail.com> | 2023-09-29 18:16:42 -0400 |
---|---|---|
committer | Leonardo Hernández Hernández <leohdz172@proton.me> | 2023-09-29 18:01:31 -0600 |
commit | f695674361d15a312eed2234e8d21a5e03719559 (patch) | |
tree | bfb64fba593364dcfab04a33780a9f03e4333d81 | |
parent | aec21eca1fedbb8d924cd3dfaf4503e3c19fc873 (diff) |
Check if c is fullscreen before reparenting it to LyrFloating
Closes: https://github.com/djpohly/dwl/issues/487
-rw-r--r-- | dwl.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -2028,7 +2028,8 @@ setfloating(Client *c, int floating) c->isfloating = floating; if (!c->mon) return; - wlr_scene_node_reparent(&c->scene->node, layers[c->isfloating ? LyrFloat : LyrTile]); + wlr_scene_node_reparent(&c->scene->node, layers[c->isfullscreen + ? LyrFS : c->isfloating ? LyrFloat : LyrTile]); arrange(c->mon); printstatus(); } @@ -2041,7 +2042,7 @@ setfullscreen(Client *c, int fullscreen) return; c->bw = fullscreen ? 0 : borderpx; client_set_fullscreen(c, fullscreen); - wlr_scene_node_reparent(&c->scene->node, layers[fullscreen + wlr_scene_node_reparent(&c->scene->node, layers[c->isfullscreen ? LyrFS : c->isfloating ? LyrFloat : LyrTile]); if (fullscreen) { @@ -2102,8 +2103,8 @@ setmon(Client *c, Monitor *m, uint32_t newtags) /* Make sure window actually overlaps with the monitor */ resize(c, c->geom, 0); c->tags = newtags ? newtags : m->tagset[m->seltags]; /* assign tags of target monitor */ - setfloating(c, c->isfloating); setfullscreen(c, c->isfullscreen); /* This will call arrange(c->mon) */ + setfloating(c, c->isfloating); } focusclient(focustop(selmon), 1); } |