From 48f959ec612041fc80cf4d526bf3f3ba96272b2f Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Sun, 9 Feb 2025 15:31:23 -0500 Subject: [PATCH] core: Avoid interpreting remapped keys as part of a panic sequence (#929) --- src/evloop.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/evloop.c b/src/evloop.c index 58e631a..e576727 100644 --- a/src/evloop.c +++ b/src/evloop.c @@ -90,24 +90,26 @@ int evloop(int (*event_handler) (struct event *ev)) for (i = 0; i < device_table_sz; i++) { if (pfds[i+1].revents) { struct device_event *devev; + struct device *dev = &device_table[i]; - while ((devev = device_read_event(&device_table[i]))) { + while ((devev = device_read_event(dev))) { if (devev->type == DEV_REMOVED) { ev.type = EV_DEV_REMOVE; - ev.dev = &device_table[i]; + ev.dev = dev; timeout = event_handler(&ev); - device_table[i].fd = -1; + dev->fd = -1; removed = 1; break; } else { //Handle device event - panic_check(devev->code, devev->pressed); + if (!dev->is_virtual) + panic_check(devev->code, devev->pressed); ev.type = EV_DEV_EVENT; ev.devev = devev; - ev.dev = &device_table[i]; + ev.dev = dev; timeout = event_handler(&ev); }