aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/tree/container.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 5c1f42c2..5d88325f 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -784,23 +784,32 @@ static size_t concatenate_child_titles(struct sway_container *parent,
strcpy(buffer, "F[");
break;
case L_NONE:
- strcpy(buffer, "?[");
+ strcpy(buffer, "D[");
break;
}
}
for (int i = 0; i < parent->children->length; ++i) {
if (i != 0) {
- len += 2;
+ len += 1;
if (buffer) {
- strcat(buffer, ", ");
+ strcat(buffer, " ");
}
}
struct sway_container *child = parent->children->items[i];
- if (child->name) {
- len += strlen(child->name);
+ const char *identifier = NULL;
+ if (child->type == C_VIEW) {
+ identifier = view_get_class(child->sway_view);
+ if (!identifier) {
+ identifier = view_get_app_id(child->sway_view);
+ }
+ } else {
+ identifier = child->name;
+ }
+ if (identifier) {
+ len += strlen(identifier);
if (buffer) {
- strcat(buffer, child->name);
+ strcat(buffer, identifier);
}
} else {
len += 6;