aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/criteria.c15
-rw-r--r--sway/sway.5.scd4
2 files changed, 15 insertions, 4 deletions
diff --git a/sway/criteria.c b/sway/criteria.c
index dd995c4b..2fa9878b 100644
--- a/sway/criteria.c
+++ b/sway/criteria.c
@@ -361,8 +361,17 @@ static char *get_focused_prop(enum criteria_token token) {
361 } 361 }
362 } 362 }
363 break; 363 break;
364 case T_CON_ID: // These do not support __focused__ 364 case T_CON_ID:
365 case T_CON_MARK: 365 if (view->swayc == NULL) {
366 return NULL;
367 }
368 size_t id = view->swayc->id;
369 int len = snprintf(NULL, 0, "%zu", id) + 1;
370 char *id_str = malloc(len);
371 snprintf(id_str, len, "%zu", id);
372 value = id_str;
373 break;
374 case T_CON_MARK: // These do not support __focused__
366 case T_FLOATING: 375 case T_FLOATING:
367#ifdef HAVE_XWAYLAND 376#ifdef HAVE_XWAYLAND
368 case T_ID: 377 case T_ID:
@@ -425,7 +434,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) {
425 case T_CON_ID: 434 case T_CON_ID:
426 criteria->con_id = strtoul(effective_value, &endptr, 10); 435 criteria->con_id = strtoul(effective_value, &endptr, 10);
427 if (*endptr != 0) { 436 if (*endptr != 0) {
428 error = strdup("The value for 'con_id' should be numeric"); 437 error = strdup("The value for 'con_id' should be '__focused__' or numeric");
429 } 438 }
430 break; 439 break;
431 case T_CON_MARK: 440 case T_CON_MARK:
diff --git a/sway/sway.5.scd b/sway/sway.5.scd
index 2d35f5d0..b639653a 100644
--- a/sway/sway.5.scd
+++ b/sway/sway.5.scd
@@ -582,7 +582,9 @@ The following attributes may be matched with:
582 the currently focused window. 582 the currently focused window.
583 583
584*con\_id* 584*con\_id*
585 Compare against the internal container ID, which you can find via IPC. 585 Compare against the internal container ID, which you can find via IPC. If
586 value is \_\_focused\_\_, then the id must be the same as that of the
587 currently focused window.
586 588
587*con\_mark* 589*con\_mark*
588 Compare against the window marks. Can be a regular expression. 590 Compare against the window marks. Can be a regular expression.