diff options
author | Simon Ser <contact@emersion.fr> | 2022-03-08 16:24:27 +0100 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2022-03-08 13:24:11 -0500 |
commit | 04676936e71f6fccccb098f3232d16572b140902 (patch) | |
tree | af19eb7696ba9c01491f307255c7f34d0a9f1aac /sway/input/switch.c | |
parent | 9f98c38d3e02b0187de31a434cc4315a22834593 (diff) |
Remove WLR_SWITCH_STATE_TOGGLE usage
Ref [1].
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/4792446ee8f50104bd207d9ccd8558a7e4eb4514
Diffstat (limited to 'sway/input/switch.c')
-rw-r--r-- | sway/input/switch.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sway/input/switch.c b/sway/input/switch.c index 9ea87a1a..fc296d18 100644 --- a/sway/input/switch.c +++ b/sway/input/switch.c @@ -19,6 +19,19 @@ struct sway_switch *sway_switch_create(struct sway_seat *seat, return switch_device; } +static bool sway_switch_trigger_test(enum sway_switch_trigger trigger, + enum wlr_switch_state state) { + switch (trigger) { + case SWAY_SWITCH_TRIGGER_ON: + return state == WLR_SWITCH_STATE_ON; + case SWAY_SWITCH_TRIGGER_OFF: + return state == WLR_SWITCH_STATE_OFF; + case SWAY_SWITCH_TRIGGER_TOGGLE: + return true; + } + abort(); // unreachable +} + static void execute_binding(struct sway_switch *sway_switch) { struct sway_seat* seat = sway_switch->seat_device->sway_seat; bool input_inhibited = seat->exclusive_client != NULL; @@ -30,11 +43,10 @@ static void execute_binding(struct sway_switch *sway_switch) { if (binding->type != sway_switch->type) { continue; } - if (binding->state != WLR_SWITCH_STATE_TOGGLE && - binding->state != sway_switch->state) { + if (!sway_switch_trigger_test(binding->trigger, sway_switch->state)) { continue; } - if (config->reloading && (binding->state == WLR_SWITCH_STATE_TOGGLE + if (config->reloading && (binding->trigger == SWAY_SWITCH_TRIGGER_TOGGLE || (binding->flags & BINDING_RELOAD) == 0)) { continue; } |