From 282fcd458cc8e6ecd757174fe7f10271c323f0e7 Mon Sep 17 00:00:00 2001 From: Ryan Walklin Date: Sat, 15 Dec 2018 14:57:25 +1100 Subject: [PATCH] Improve event matching logic --- rootston/switch.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/rootston/switch.c b/rootston/switch.c index 3ccaad6a..b480e054 100644 --- a/rootston/switch.c +++ b/rootston/switch.c @@ -15,19 +15,14 @@ void roots_switch_handle_toggle(struct roots_switch *lid_switch, wl_list_for_each(sc, bound_switches, link) { bool device_match = false; bool state_match = false; - if ((sc->name != NULL && strcmp(event->device->name, sc->name) == 0) || - (sc->name == NULL && event->switch_type == sc->switch_type)) { - device_match = true; + if ((sc->name != NULL && strcmp(event->device->name, sc->name) != 0) && + (sc->name == NULL && event->switch_type != sc->switch_type)) { + continue; } - if (!device_match) { - break; - } - if (sc->switch_state == WLR_SWITCH_STATE_TOGGLE || - event->switch_state == sc->switch_state) { - state_match = true; - } - if (device_match && state_match) { - execute_binding_command(lid_switch->seat, lid_switch->seat->input, sc->command); + if (sc->switch_state != WLR_SWITCH_STATE_TOGGLE && + event->switch_state != sc->switch_state) { + continue; } + execute_binding_command(lid_switch->seat, lid_switch->seat->input, sc->command); } }