make sure the parent is mapped prior set monitor and tags

This commit is contained in:
Leonardo Hernández Hernández 2022-09-10 23:45:14 -05:00
parent 77ba8e5127
commit fd67087a82
No known key found for this signature in database
GPG Key ID: E538897EE11B9624
1 changed files with 6 additions and 5 deletions

11
dwl.c
View File

@ -1439,13 +1439,14 @@ mapnotify(struct wl_listener *listener, void *data)
wl_list_insert(&clients, &c->link);
wl_list_insert(&fstack, &c->flink);
/* Set initial monitor, tags, floating status, and focus */
if ((p = client_get_parent(c))) {
/* Set the same monitor and tags than its parent */
/* Set initial monitor, tags, floating status, and focus:
* we always consider floating, clients that have parent and thus
* we set the same tags and monitor than its parent, if not
* try to apply rules for them */
if ((p = client_get_parent(c)) && client_is_mapped(p)) {
c->isfloating = 1;
wlr_scene_node_reparent(c->scene, layers[LyrFloat]);
/* TODO recheck if !p->mon is possible with wlroots 0.16.0 */
setmon(c, p->mon ? p->mon : selmon, p->tags);
setmon(c, p->mon, p->tags);
} else {
applyrules(c);
}