mirror of
https://github.com/swaywm/sway.git
synced 2025-11-02 09:01:40 -05:00
Invoke mouse bindings
The mouse binding logic is inspired/copied from the keyboard binding logic; we store a sorted list of the currently pressed buttons, and trigger a binding when the currently pressed (or just recently pressed, in the case of a release binding) buttons, as well as modifiers/container region, match those of a given binding. As the code to execute a binding is not very keyboard specific, keyboard_execute_command is renamed to seat_execute_command and moved to where the other binding handling functions are. The call to transaction_commit_dirty has been lifted out.
This commit is contained in:
parent
754372c3de
commit
94dd8823a0
5 changed files with 140 additions and 28 deletions
|
|
@ -267,3 +267,19 @@ struct cmd_results *cmd_bindsym(int argc, char **argv) {
|
|||
struct cmd_results *cmd_bindcode(int argc, char **argv) {
|
||||
return cmd_bindsym_or_bindcode(argc, argv, true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Execute the command associated to a binding
|
||||
*/
|
||||
void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding) {
|
||||
wlr_log(WLR_DEBUG, "running command for binding: %s",
|
||||
binding->command);
|
||||
config->handler_context.seat = seat;
|
||||
struct cmd_results *results = execute_command(binding->command, NULL);
|
||||
if (results->status != CMD_SUCCESS) {
|
||||
wlr_log(WLR_DEBUG, "could not run command for binding: %s (%s)",
|
||||
binding->command, results->error);
|
||||
}
|
||||
free_cmd_results(results);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue