aboutsummaryrefslogtreecommitdiffstats
path: root/sway/criteria.c
diff options
context:
space:
mode:
authorLibravatar Tony Crisci <tony@dubstepdish.com>2018-01-21 14:11:41 -0500
committerLibravatar Tony Crisci <tony@dubstepdish.com>2018-01-21 14:11:41 -0500
commit5505d84ac2fda7c5fb4e4c52385ff818e66ef8e1 (patch)
tree9e7defcf69938a94878a03d083124212609b3c9d /sway/criteria.c
parentimplement property criteria (diff)
downloadsway-5505d84ac2fda7c5fb4e4c52385ff818e66ef8e1.tar.gz
sway-5505d84ac2fda7c5fb4e4c52385ff818e66ef8e1.tar.zst
sway-5505d84ac2fda7c5fb4e4c52385ff818e66ef8e1.zip
criteria cleanup
Diffstat (limited to 'sway/criteria.c')
-rw-r--r--sway/criteria.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sway/criteria.c b/sway/criteria.c
index 09733616..2eee331c 100644
--- a/sway/criteria.c
+++ b/sway/criteria.c
@@ -103,7 +103,8 @@ static int countchr(char *str, char c) {
103// of buf. 103// of buf.
104// 104//
105// Returns error string or NULL if successful. 105// Returns error string or NULL if successful.
106static char *crit_tokens(int *argc, char ***buf, const char * const criteria_str) { 106static char *crit_tokens(int *argc, char ***buf,
107 const char * const criteria_str) {
107 wlr_log(L_DEBUG, "Parsing criteria: '%s'", criteria_str); 108 wlr_log(L_DEBUG, "Parsing criteria: '%s'", criteria_str);
108 char *base = criteria_from(criteria_str); 109 char *base = criteria_from(criteria_str);
109 char *head = base; 110 char *head = base;
@@ -423,16 +424,20 @@ struct list_tokens {
423 list_t *tokens; 424 list_t *tokens;
424}; 425};
425 426
426static void container_match_add(swayc_t *container, struct list_tokens *list_tokens) { 427static void container_match_add(swayc_t *container,
428 struct list_tokens *list_tokens) {
427 if (criteria_test(container, list_tokens->tokens)) { 429 if (criteria_test(container, list_tokens->tokens)) {
428 list_add(list_tokens->list, container); 430 list_add(list_tokens->list, container);
429 } 431 }
430} 432}
431 433
432list_t *container_for(list_t *tokens) { 434list_t *container_for_crit_tokens(list_t *tokens) {
433 struct list_tokens list_tokens = (struct list_tokens){create_list(), tokens}; 435 struct list_tokens list_tokens =
436 (struct list_tokens){create_list(), tokens};
434 437
435 container_map(&root_container, (void (*)(swayc_t *, void *))container_match_add, &list_tokens); 438 container_map(&root_container,
439 (void (*)(swayc_t *, void *))container_match_add,
440 &list_tokens);
436 441
437 // TODO look in the scratchpad 442 // TODO look in the scratchpad
438 443