config/input: implement mouse bindings

* New config section, "mouse-bindings", where bindings are defined on
  the form "action=BTN_<name>
* pointer_button() handler now scans the bindings list instead of
  hardcoding primary-paste to BTN_MIDDLE.
* The implementation handles single- double- and triple clicks in the
  bindings, but there is currently no way to define anything but a
  single-click binding in the configuration.
This commit is contained in:
Daniel Eklöf 2020-03-12 10:20:05 +01:00
parent 9fae38a4b2
commit 45384839f0
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
6 changed files with 94 additions and 20 deletions

View file

@ -65,6 +65,12 @@ struct key_binding {
};
typedef tll(struct key_binding) key_binding_list_t;
struct mouse_binding {
uint32_t button;
int count;
enum binding_action action;
};
struct kbd {
struct xkb_context *xkb;
struct xkb_keymap *xkb_keymap;