From 14f9b1be647e22418cc9d42b0081f779878cfb8d Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Wed, 17 Jun 2020 17:04:34 +0530 Subject: Adds mask for next event --- config.h | 2 +- hotkeythingy.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/config.h b/config.h index 46f065f..70732de 100644 --- a/config.h +++ b/config.h @@ -8,7 +8,7 @@ enum { Bright, // Declare modes above this - MODE_SIZE, // NOTE: Do not remove this + MODE_SIZE, }; // Define mode key bindings here diff --git a/hotkeythingy.c b/hotkeythingy.c index 93c21c2..9f02e45 100644 --- a/hotkeythingy.c +++ b/hotkeythingy.c @@ -97,7 +97,7 @@ void run(Display* dpy, Window win, Command command) { current_mode = command.mode; is_mode_persistent = command.persist; - if (modes[current_mode] && current_mode < MODE_SIZE) { + if (modes[current_mode] && current_mode < LENGTH(modes)) { for (i = 0; i < LENGTH(modes[current_mode]); i++) { mode_key = modes[current_mode][i]; bind_key(dpy, win, mode_key.mod, mode_key.key); @@ -127,7 +127,7 @@ void keypress(Display *dpy, Window win, XKeyEvent *ev) { // Escape key is_mode_persistent = is_mode_persistent && ev->keycode != 9; - if (modes[current_mode] && current_mode < MODE_SIZE) { + if (modes[current_mode] && current_mode < LENGTH(modes)) { // Check if key is in mode and execute for (i = 0; i < LENGTH(modes[current_mode]); i++) { mode_key = modes[current_mode][i]; @@ -177,7 +177,9 @@ int main() { /* main event loop */ XEvent ev; XSync(dpy, False); - while (running && !XNextEvent(dpy, &ev)) { + while (running) { + XMaskEvent(dpy, KeyPressMask, &ev); + switch (ev.type) { case KeyPress: { keypress(dpy, root, &ev.xkey); -- cgit v1.3.1