summaryrefslogtreecommitdiffstats
path: root/sway/criteria.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/criteria.c')
-rw-r--r--sway/criteria.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sway/criteria.c b/sway/criteria.c
index f5fe40cb..e8978ebe 100644
--- a/sway/criteria.c
+++ b/sway/criteria.c
@@ -434,10 +434,18 @@ static void container_match_add(swayc_t *container, struct list_tokens *list_tok
434 list_add(list_tokens->list, container); 434 list_add(list_tokens->list, container);
435 } 435 }
436} 436}
437
437list_t *container_for(list_t *tokens) { 438list_t *container_for(list_t *tokens) {
438 struct list_tokens list_tokens = (struct list_tokens){create_list(), tokens}; 439 struct list_tokens list_tokens = (struct list_tokens){create_list(), tokens};
439 440
440 container_map(&root_container, (void (*)(swayc_t *, void *))container_match_add, &list_tokens); 441 container_map(&root_container, (void (*)(swayc_t *, void *))container_match_add, &list_tokens);
442
443 for (int i = 0; i < scratchpad->length; ++i) {
444 swayc_t *c = scratchpad->items[i];
445 if (criteria_test(c, tokens)) {
446 list_add(list_tokens.list, c);
447 }
448 }
441 449
442 return list_tokens.list; 450 return list_tokens.list;
443} 451}