summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorBert Münnich <ber.t@posteo.de>2014-07-23 23:41:23 +0200
committerBert Münnich <ber.t@posteo.de>2014-07-23 23:41:23 +0200
commit9c92de858484b6bbe90252955bef5f77a80f3c45 (patch)
tree6cc5e92a83f29e3082848e41ee8bd981e80f3b3f /main.c
parent06164c29b759c3e21e79be03b285bdf3da6f5a25 (diff)
downloadnsxiv-9c92de858484b6bbe90252955bef5f77a80f3c45.tar.zst
Added support for multiple commands per key/button mapping; elegant fix for issue #150
Diffstat (limited to 'main.c')
-rw-r--r--main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/main.c b/main.c
index 86b97b0..6db8a44 100644
--- a/main.c
+++ b/main.c
@@ -541,6 +541,7 @@ void on_keypress(XKeyEvent *kev)
unsigned int sh;
KeySym ksym, shksym;
char key;
+ bool dirty = false;
if (kev == NULL)
return;
@@ -571,16 +572,18 @@ void on_keypress(XKeyEvent *kev)
(cmds[keys[i].cmd].mode < 0 || cmds[keys[i].cmd].mode == mode))
{
if (cmds[keys[i].cmd].func(keys[i].arg))
- redraw();
- break;
+ dirty = true;
}
}
+ if (dirty)
+ redraw();
prefix = 0;
}
void on_buttonpress(XButtonEvent *bev)
{
int i, sel;
+ bool dirty = false;
static Time firstclick;
if (bev == NULL)
@@ -597,10 +600,11 @@ void on_buttonpress(XButtonEvent *bev)
(cmds[buttons[i].cmd].mode < 0 || cmds[buttons[i].cmd].mode == mode))
{
if (cmds[buttons[i].cmd].func(buttons[i].arg))
- redraw();
- break;
+ dirty = true;
}
}
+ if (dirty)
+ redraw();
} else {
/* thumbnail mode (hard-coded) */
switch (bev->button) {