config: mouse-bindings: verify button isn't already mapped

A button may only be mapped to a single action. Detect when the user
tried to map the same button to multiple actions and error out.

To clear a binding (for example, to free up a button from the default
bindings), one can set the action it is bound to to
`NONE` (e.g. `primary-paste=NONE`).
This commit is contained in:
Daniel Eklöf 2020-03-12 10:46:27 +01:00
parent 60170f4738
commit c58f9a9ef9
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 40 additions and 5 deletions

View file

@ -38,6 +38,9 @@ input_execute_binding(struct terminal *term, enum binding_action action,
uint32_t serial)
{
switch (action) {
case BIND_ACTION_NONE:
break;
case BIND_ACTION_SCROLLBACK_UP:
cmd_scrollback_up(term, term->rows);
break;
@ -1168,6 +1171,7 @@ wl_pointer_button(void *data, struct wl_pointer *wl_pointer,
}
input_execute_binding(term, binding->action, serial);
break;
}
selection_cancel(term);
}