summaryrefslogtreecommitdiff
path: root/dmenu.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmenu.c')
-rw-r--r--dmenu.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/dmenu.c b/dmenu.c
index 65f25ce..753a716 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -334,17 +334,17 @@ keypress(XKeyEvent *ev)
case XK_g: ksym = XK_Escape; break;
case XK_h: ksym = XK_BackSpace; break;
case XK_i: ksym = XK_Tab; break;
- case XK_j: /* fallthrough */
+ /* case XK_j: #<{(| fallthrough |)}># */
case XK_J: /* fallthrough */
case XK_m: /* fallthrough */
case XK_M: ksym = XK_Return; ev->state &= ~ControlMask; break;
case XK_n: ksym = XK_Down; break;
case XK_p: ksym = XK_Up; break;
- case XK_k: /* delete right */
- text[cursor] = '\0';
- match();
- break;
+ /* case XK_k: #<{(| delete right |)}># */
+ /* text[cursor] = '\0'; */
+ /* match(); */
+ /* break; */
case XK_u: /* delete left */
insert(NULL, 0 - cursor);
break;
@@ -354,6 +354,7 @@ keypress(XKeyEvent *ev)
while (cursor > 0 && !strchr(worddelimiters, text[nextrune(-1)]))
insert(NULL, nextrune(-1) - cursor);
break;
+ case XK_v: /* paste selection */
case XK_y: /* paste selection */
case XK_Y:
XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY,
@@ -371,6 +372,22 @@ keypress(XKeyEvent *ev)
case XK_bracketleft:
cleanup();
exit(1);
+
+ // ADDED Ctrl-j/k for selection
+ case XK_j:
+ /* case XK_Down: */
+ if (sel && sel->right && (sel = sel->right) == next) {
+ curr = next;
+ calcoffsets();
+ }
+ break;
+ case XK_k:
+ if (sel && sel->left && (sel = sel->left)->right == curr) {
+ curr = prev;
+ calcoffsets();
+ }
+ break;
+
default:
return;
}