2018-11-28 21:03:42 +01:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <wlr/util/log.h>
|
|
|
|
#include "rootston/bindings.h"
|
|
|
|
|
2019-03-19 23:41:20 +01:00
|
|
|
void roots_switch_handle_toggle(struct roots_switch *switch_device,
|
2019-01-21 17:56:19 +01:00
|
|
|
struct wlr_event_switch_toggle *event) {
|
|
|
|
struct wl_list *bound_switches =
|
2019-03-19 23:41:20 +01:00
|
|
|
&switch_device->seat->input->server->config->switches;
|
2019-01-21 17:56:19 +01:00
|
|
|
struct roots_switch_config *sc;
|
|
|
|
wl_list_for_each(sc, bound_switches, link) {
|
|
|
|
if ((sc->name != NULL && strcmp(event->device->name, sc->name) != 0) &&
|
|
|
|
(sc->name == NULL && event->switch_type != sc->switch_type)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (sc->switch_state != WLR_SWITCH_STATE_TOGGLE &&
|
|
|
|
event->switch_state != sc->switch_state) {
|
|
|
|
continue;
|
|
|
|
}
|
2019-03-19 23:41:20 +01:00
|
|
|
execute_binding_command(switch_device->seat,
|
|
|
|
switch_device->seat->input, sc->command);
|
2019-01-21 17:56:19 +01:00
|
|
|
}
|
2018-11-28 21:03:42 +01:00
|
|
|
}
|