diff --git a/src/ssd/ssd.c b/src/ssd/ssd.c index 744f650e..14e7f462 100644 --- a/src/ssd/ssd.c +++ b/src/ssd/ssd.c @@ -68,12 +68,16 @@ ssd_get_part_type(struct view *view, struct wlr_scene_node *node) struct wl_list *part_list = NULL; struct wlr_scene_tree *grandparent = node->parent ? node->parent->node.parent : NULL; + struct wlr_scene_tree *greatgrandparent = + grandparent ? grandparent->node.parent : NULL; /* active titlebar */ if (node->parent == view->ssd.titlebar.active.tree) { part_list = &view->ssd.titlebar.active.parts; } else if (grandparent == view->ssd.titlebar.active.tree) { part_list = &view->ssd.titlebar.active.parts; + } else if (greatgrandparent == view->ssd.titlebar.active.tree) { + part_list = &view->ssd.titlebar.active.parts; /* extents */ } else if (node->parent == view->ssd.extents.tree) { @@ -88,6 +92,8 @@ ssd_get_part_type(struct view *view, struct wlr_scene_node *node) part_list = &view->ssd.titlebar.inactive.parts; } else if (grandparent == view->ssd.titlebar.inactive.tree) { part_list = &view->ssd.titlebar.inactive.parts; + } else if (greatgrandparent == view->ssd.titlebar.inactive.tree) { + part_list = &view->ssd.titlebar.inactive.parts; /* inactive border */ } else if (node->parent == view->ssd.border.inactive.tree) {