mirror of
https://github.com/swaywm/sway
synced 2024-11-18 00:24:17 +01: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;
|
||||
|
||||
head = exec;
|
||||
@ -301,6 +292,9 @@ list_t *execute_command(char *_exec, struct sway_seat *seat,
|
||||
}
|
||||
|
||||
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);
|
||||
struct cmd_results *res = handler->handle(argc-1, argv+1);
|
||||
list_add(res_list, res);
|
||||
|
Loading…
Reference in New Issue
Block a user