From cb66bbea42adeabd7bd87132a66589e14a46940f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 23 Sep 2018 08:38:15 +1000 Subject: Allow running commands on containers without focusing them This adds a `con` argument to `execute_command` which allows you to specify the container to execute the command on. In most cases it leaves it as `NULL` which makes it use the focused node. We only set it when executing `for_window` criteria such as when a view maps. This means we don't send unnecessary IPC focus events, and fixes a crash when the criteria command is `move scratchpad` (because we can't give focus to a hidden scratchpad container). Each of the shell map handlers now check to see if the view has a workspace. It won't have a workspace if criteria has moved it to the scratchpad. --- sway/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index 3d7cd158..990f5f3a 100644 --- a/sway/main.c +++ b/sway/main.c @@ -429,7 +429,7 @@ int main(int argc, char **argv) { wlr_log(WLR_DEBUG, "Running deferred commands"); while (config->cmd_queue->length) { char *line = config->cmd_queue->items[0]; - struct cmd_results *res = execute_command(line, NULL); + struct cmd_results *res = execute_command(line, NULL, NULL); if (res->status != CMD_SUCCESS) { wlr_log(WLR_ERROR, "Error on line '%s': %s", line, res->error); } -- cgit v1.2.3