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

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(&clients, &c->link);
wl_list_insert(&fstack, &c->flink); wl_list_insert(&fstack, &c->flink);
/* Set initial monitor, tags, floating status, and focus */ /* Set initial monitor, tags, floating status, and focus:
if ((p = client_get_parent(c))) { * we always consider floating, clients that have parent and thus
/* Set the same monitor and tags than its parent */ * 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; c->isfloating = 1;
wlr_scene_node_reparent(c->scene, layers[LyrFloat]); 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->tags);
setmon(c, p->mon ? p->mon : selmon, p->tags);
} else { } else {
applyrules(c); applyrules(c);
} }