about summary refs log tree commit diff stats
path: root/xombrero.c
diff options
context:
space:
mode:
authorJosh Rickmar <jrick@devio.us>2012-06-07 15:36:28 -0400
committerJosh Rickmar <jrick@devio.us>2012-06-07 16:27:01 -0400
commit4f8dc76d9ffd69bcd982525fb16fe0087e290249 (patch)
tree6e3bd77a3154df7e5de99b2687e71718a7b6c7bb /xombrero.c
parent666bfe5a402c6d9adaf499531eeaccf5f881ebb6 (diff)
downloadxombrero-4f8dc76d9ffd69bcd982525fb16fe0087e290249.tar.gz
Unbreak some of the keybinding logic that I broke in
29e1c7496a0f6b7812e083aac8da186932fc8daf.
Diffstat (limited to 'xombrero.c')
-rw-r--r--xombrero.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/xombrero.c b/xombrero.c
index cb4a4ac..24cfdd6 100644
--- a/xombrero.c
+++ b/xombrero.c
@@ -5591,15 +5591,11 @@ handle_keypress(struct tab *t, GdkEventKey *e, int entry)
 				    (e->state & CTRL || e->state & MOD1))
 					return (XT_CB_PASSTHROUGH);
 
-				if ((k->mask == 0 &&
-				    (e->state & (CTRL | MOD1)) == 0) ||
-				    (e->state & k->mask) == k->mask) {
-					if (k->cmd[0] == ':') {
-						args.i = ':';
-						args.s = &k->cmd[1];
-						return command(t, &args);
-					} else
-						return (cmd_execute(t, k->cmd));
+				if (k->mask == 0) {
+					if ((e->state & (CTRL | MOD1)) == 0)
+						goto runcmd;
+				} else if ((e->state & k->mask) == k->mask) {
+					goto runcmd;
 				}
 			}
 
@@ -5607,6 +5603,14 @@ handle_keypress(struct tab *t, GdkEventKey *e, int entry)
 		return buffercmd_addkey(t, e->keyval);
 
 	return (XT_CB_PASSTHROUGH);
+
+runcmd:
+	if (k->cmd[0] == ':') {
+		args.i = ':';
+		args.s = &k->cmd[1];
+		return (command(t, &args));
+	} else
+		return (cmd_execute(t, k->cmd));
 }
 
 int