diff options
| author | Akshay Nair <phenax5@gmail.com> | 2020-06-22 15:31:23 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2020-06-22 15:31:23 +0530 |
| commit | 7a78baba1bd4a952a3d46215f100dfc7cadd4483 (patch) | |
| tree | 4971205c6483452ed2f0d462ea0a22cfd964bb91 | |
| parent | 4f6f940ca6686cfe1cd5197c2a32605c024a3934 (diff) | |
| download | shotkey-7a78baba1bd4a952a3d46215f100dfc7cadd4483.tar.gz shotkey-7a78baba1bd4a952a3d46215f100dfc7cadd4483.zip | |
Fixes mode persist false case issue
Diffstat (limited to '')
| -rw-r--r-- | shotkey.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -114,7 +114,7 @@ void run(Display* dpy, Window win, Command command) { } void keypress(Display *dpy, Window win, XKeyEvent *ev) { - unsigned int i; + unsigned int i, stay_in_mode = False; Key mode_key; KeySym keysym = XKeycodeToKeysym(dpy, (KeyCode) ev->keycode, 0); @@ -126,8 +126,7 @@ void keypress(Display *dpy, Window win, XKeyEvent *ev) { } } } else { - // Will quit if the key pressed is not defined in the mode - is_mode_persistent = False; + stay_in_mode = False; if (modes[current_mode] && current_mode < LENGTH(modes)) { // Check if key is in mode and execute @@ -136,12 +135,12 @@ void keypress(Display *dpy, Window win, XKeyEvent *ev) { if (keysym == mode_key.key && CLEANMASK(mode_key.mod) == CLEANMASK(ev->state)) { // Action taken so keep the mode alive - is_mode_persistent = True; + stay_in_mode = True; run(dpy, win, mode_key.command); } } - if (!is_mode_persistent) { + if (is_mode_persistent ? !stay_in_mode : True) { // Unbind mode related keys XUngrabKeyboard(dpy, CurrentTime); @@ -150,7 +149,7 @@ void keypress(Display *dpy, Window win, XKeyEvent *ev) { } } - if (!is_mode_persistent) { + if (is_mode_persistent ? !stay_in_mode : True) { set_mode(NormalMode, False); } } |
