aboutsummaryrefslogtreecommitdiff
path: root/sway/criteria.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/criteria.c')
-rw-r--r--sway/criteria.c100
1 files changed, 50 insertions, 50 deletions
diff --git a/sway/criteria.c b/sway/criteria.c
index 51779590..53435d29 100644
--- a/sway/criteria.c
+++ b/sway/criteria.c
@@ -247,62 +247,62 @@ static bool criteria_test(swayc_t *cont, list_t *tokens) {
for (int i = 0; i < tokens->length; i++) {
struct crit_token *crit = tokens->items[i];
switch (crit->type) {
- case CRIT_CLASS:
- if (!cont->class) {
- // ignore
- } else if (strcmp(crit->raw, "focused") == 0) {
- swayc_t *focused = get_focused_view(&root_container);
- if (focused->class && strcmp(cont->class, focused->class) == 0) {
- matches++;
- }
- } else if (crit->regex && regexec(crit->regex, cont->class, 0, NULL, 0) == 0) {
+ case CRIT_CLASS:
+ if (!cont->class) {
+ // ignore
+ } else if (strcmp(crit->raw, "focused") == 0) {
+ swayc_t *focused = get_focused_view(&root_container);
+ if (focused->class && strcmp(cont->class, focused->class) == 0) {
matches++;
}
- break;
- case CRIT_ID:
- if (!cont->app_id) {
- // ignore
- } else if (crit->regex && regexec(crit->regex, cont->app_id, 0, NULL, 0) == 0) {
- matches++;
- }
- break;
- case CRIT_INSTANCE:
- break;
- case CRIT_TITLE:
- if (!cont->name) {
- // ignore
- } else if (strcmp(crit->raw, "focused") == 0) {
- swayc_t *focused = get_focused_view(&root_container);
- if (focused->name && strcmp(cont->name, focused->name) == 0) {
- matches++;
- }
- } else if (crit->regex && regexec(crit->regex, cont->name, 0, NULL, 0) == 0) {
+ } else if (crit->regex && regexec(crit->regex, cont->class, 0, NULL, 0) == 0) {
+ matches++;
+ }
+ break;
+ case CRIT_ID:
+ if (!cont->app_id) {
+ // ignore
+ } else if (crit->regex && regexec(crit->regex, cont->app_id, 0, NULL, 0) == 0) {
+ matches++;
+ }
+ break;
+ case CRIT_INSTANCE:
+ break;
+ case CRIT_TITLE:
+ if (!cont->name) {
+ // ignore
+ } else if (strcmp(crit->raw, "focused") == 0) {
+ swayc_t *focused = get_focused_view(&root_container);
+ if (focused->name && strcmp(cont->name, focused->name) == 0) {
matches++;
}
- break;
- case CRIT_URGENT: // "latest" or "oldest"
- break;
- case CRIT_WINDOW_ROLE:
- break;
- case CRIT_WINDOW_TYPE:
- // TODO wlc indeed exposes this information
- break;
- case CRIT_WORKSPACE: ;
- swayc_t *cont_ws = swayc_parent_by_type(cont, C_WORKSPACE);
- if (!cont_ws || !cont_ws->name) {
- // ignore
- } else if (strcmp(crit->raw, "focused") == 0) {
- swayc_t *focused_ws = swayc_active_workspace();
- if (focused_ws->name && strcmp(cont_ws->name, focused_ws->name) == 0) {
- matches++;
- }
- } else if (crit->regex && regexec(crit->regex, cont_ws->name, 0, NULL, 0) == 0) {
+ } else if (crit->regex && regexec(crit->regex, cont->name, 0, NULL, 0) == 0) {
+ matches++;
+ }
+ break;
+ case CRIT_URGENT: // "latest" or "oldest"
+ break;
+ case CRIT_WINDOW_ROLE:
+ break;
+ case CRIT_WINDOW_TYPE:
+ // TODO wlc indeed exposes this information
+ break;
+ case CRIT_WORKSPACE: ;
+ swayc_t *cont_ws = swayc_parent_by_type(cont, C_WORKSPACE);
+ if (!cont_ws || !cont_ws->name) {
+ // ignore
+ } else if (strcmp(crit->raw, "focused") == 0) {
+ swayc_t *focused_ws = swayc_active_workspace();
+ if (focused_ws->name && strcmp(cont_ws->name, focused_ws->name) == 0) {
matches++;
}
- break;
- default:
- sway_abort("Invalid criteria type (%i)", crit->type);
- break;
+ } else if (crit->regex && regexec(crit->regex, cont_ws->name, 0, NULL, 0) == 0) {
+ matches++;
+ }
+ break;
+ default:
+ sway_abort("Invalid criteria type (%i)", crit->type);
+ break;
}
}
return matches == tokens->length;