aboutsummaryrefslogtreecommitdiff
path: root/shotkey.c
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2020-06-22 15:31:41 +0530
committerAkshay Nair <phenax5@gmail.com>2020-06-22 15:31:41 +0530
commitbee9f7fba78c7092362f7197f95ee9ec15d13485 (patch)
treeee6342cc40d34057c0e07c1ac0220e981731c591 /shotkey.c
parent629a2ca5a95ae8b3194c782c92f4a2bd67bb2cda (diff)
parent7a78baba1bd4a952a3d46215f100dfc7cadd4483 (diff)
downloadshotkey-bee9f7fba78c7092362f7197f95ee9ec15d13485.tar.gz
shotkey-bee9f7fba78c7092362f7197f95ee9ec15d13485.zip
Merge branch 'master' into personal
Diffstat (limited to 'shotkey.c')
-rw-r--r--shotkey.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/shotkey.c b/shotkey.c
index 6c9ed65..7afffa1 100644
--- a/shotkey.c
+++ b/shotkey.c
@@ -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);
}
}