mirror of
https://github.com/swaywm/sway.git
synced 2024-11-29 11:21:28 +00:00
Fix command list execution
Determine the container/workspace a command is run on, each time when a command of the command list will be run. Previously the container/workspace was determined only once at the beginning of command list execution, which led to wrong behaviour because commands wouldn't take into account when a previous command changed the focused container.
This commit is contained in:
parent
6ccc836ebf
commit
cf6edaf26a
|
@ -232,15 +232,6 @@ list_t *execute_command(char *_exec, struct sway_seat *seat,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the container or workspace which this command will run on.
|
|
||||||
// Ignored if the command string contains criteria.
|
|
||||||
struct sway_node *node;
|
|
||||||
if (con) {
|
|
||||||
node = &con->node;
|
|
||||||
} else {
|
|
||||||
node = seat_get_focus_inactive(seat, &root->node);
|
|
||||||
}
|
|
||||||
|
|
||||||
config->handler_context.seat = seat;
|
config->handler_context.seat = seat;
|
||||||
|
|
||||||
head = exec;
|
head = exec;
|
||||||
|
@ -301,6 +292,9 @@ list_t *execute_command(char *_exec, struct sway_seat *seat,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!config->handler_context.using_criteria) {
|
if (!config->handler_context.using_criteria) {
|
||||||
|
// The container or workspace which this command will run on.
|
||||||
|
struct sway_node *node = con ? &con->node :
|
||||||
|
seat_get_focus_inactive(seat, &root->node);
|
||||||
set_config_node(node);
|
set_config_node(node);
|
||||||
struct cmd_results *res = handler->handle(argc-1, argv+1);
|
struct cmd_results *res = handler->handle(argc-1, argv+1);
|
||||||
list_add(res_list, res);
|
list_add(res_list, res);
|
||||||
|
|
Loading…
Reference in a new issue