Add mouse button bindings

Adds support for bindings like:

bindsym button3 floating toggle
bindsym $mod+button3 floating toggle
This commit is contained in:
Josip Janzic 2017-05-04 22:42:50 +02:00
parent 02d1ae7e27
commit 400998d6d2
2 changed files with 28 additions and 0 deletions

View file

@ -917,6 +917,26 @@ static bool handle_pointer_button(wlc_handle view, uint32_t time, const struct w
// Update view pointer is on
pointer_state.view = container_under_pointer();
struct sway_mode *mode = config->current_mode;
// handle bindings
for (int i = 0; i < mode->bindings->length; ++i) {
struct sway_binding *binding = mode->bindings->items[i];
if ((modifiers->mods ^ binding->modifiers) == 0) {
switch (state) {
case WLC_BUTTON_STATE_PRESSED: {
if (!binding->release && handle_bindsym(binding, button, 0)) {
return EVENT_HANDLED;
}
}
case WLC_BUTTON_STATE_RELEASED:
if (binding->release && handle_bindsym(binding, button, 0)) {
return EVENT_HANDLED;
}
break;
}
}
}
// Update pointer_state
switch (button) {
case M_LEFT_CLICK: