Introduction
Introduction Statistics Contact Development Disclaimer Help
dmenu-gridnav-5.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dmenu-gridnav-5.2.diff (1445B)
---
1 diff --git a/dmenu.c b/dmenu.c
2 index 027dddb..0b92f1f 100644
3 --- a/dmenu.c
4 +++ b/dmenu.c
5 @@ -334,6 +334,8 @@ keypress(XKeyEvent *ev)
6 int len;
7 KeySym ksym = NoSymbol;
8 Status status;
9 + int i, offscreen = 0;
10 + struct item *tmpsel;
11
12 len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
13 switch (status) {
14 @@ -465,6 +467,27 @@ insert:
15 calcoffsets();
16 break;
17 case XK_Left:
18 + if (columns > 1) {
19 + if (!sel)
20 + return;
21 + tmpsel = sel;
22 + for (i = 0; i < lines; i++) {
23 + if (!tmpsel->left || tmpsel->left->righ…
24 + if (offscreen)
25 + break;
26 + return;
27 + }
28 + if (tmpsel == curr)
29 + offscreen = 1;
30 + tmpsel = tmpsel->left;
31 + }
32 + sel = tmpsel;
33 + if (offscreen) {
34 + curr = prev;
35 + calcoffsets();
36 + }
37 + break;
38 + }
39 case XK_KP_Left:
40 if (cursor > 0 && (!sel || !sel->left || lines > 0)) {
41 cursor = nextrune(-1);
42 @@ -505,6 +528,27 @@ insert:
43 sel->out = 1;
44 break;
45 case XK_Right:
46 + if (columns > 1) {
47 + if (!sel)
48 + return;
49 + tmpsel = sel;
50 + for (i = 0; i < lines; i++) {
51 + if (!tmpsel->right || tmpsel->right->l…
52 + if (offscreen)
53 + break;
54 + return;
55 + }
56 + tmpsel = tmpsel->right;
57 + if (tmpsel == next)
58 + offscreen = 1;
59 + }
60 + sel = tmpsel;
61 + if (offscreen) {
62 + curr = next;
63 + calcoffsets();
64 + }
65 + break;
66 + }
67 case XK_KP_Right:
68 if (text[cursor] != '\0') {
69 cursor = nextrune(+1);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.