commit 8700e556cc3d641483c57dd43afd7a37a0a7450a
parent 0aac310cedbde3d1b729b7de2191ccd5e4e3385b
Author: Nik-Nothing <niktopel@gmail.com>
Date: Fri, 20 Jan 2023 13:19:05 +0000
adjusted dmenu gridnav patch for 5.2
Diffstat:
2 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/tools.suckless.org/dmenu/patches/gridnav/dmenu-gridnav-5.2.diff b/tools.suckless.org/dmenu/patches/gridnav/dmenu-gridnav-5.2.diff
@@ -0,0 +1,69 @@
+diff --git a/dmenu.c b/dmenu.c
+index 027dddb..0b92f1f 100644
+--- a/dmenu.c
++++ b/dmenu.c
+@@ -334,6 +334,8 @@ keypress(XKeyEvent *ev)
+ int len;
+ KeySym ksym = NoSymbol;
+ Status status;
++ int i, offscreen = 0;
++ struct item *tmpsel;
+
+ len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
+ switch (status) {
+@@ -465,6 +467,27 @@ insert:
+ calcoffsets();
+ break;
+ case XK_Left:
++ if (columns > 1) {
++ if (!sel)
++ return;
++ tmpsel = sel;
++ for (i = 0; i < lines; i++) {
++ if (!tmpsel->left || tmpsel->left->right != tmpsel) {
++ if (offscreen)
++ break;
++ return;
++ }
++ if (tmpsel == curr)
++ offscreen = 1;
++ tmpsel = tmpsel->left;
++ }
++ sel = tmpsel;
++ if (offscreen) {
++ curr = prev;
++ calcoffsets();
++ }
++ break;
++ }
+ case XK_KP_Left:
+ if (cursor > 0 && (!sel || !sel->left || lines > 0)) {
+ cursor = nextrune(-1);
+@@ -505,6 +528,27 @@ insert:
+ sel->out = 1;
+ break;
+ case XK_Right:
++ if (columns > 1) {
++ if (!sel)
++ return;
++ tmpsel = sel;
++ for (i = 0; i < lines; i++) {
++ if (!tmpsel->right || tmpsel->right->left != tmpsel) {
++ if (offscreen)
++ break;
++ return;
++ }
++ tmpsel = tmpsel->right;
++ if (tmpsel == next)
++ offscreen = 1;
++ }
++ sel = tmpsel;
++ if (offscreen) {
++ curr = next;
++ calcoffsets();
++ }
++ break;
++ }
+ case XK_KP_Right:
+ if (text[cursor] != '\0') {
+ cursor = nextrune(+1);
diff --git a/tools.suckless.org/dmenu/patches/gridnav/index.md b/tools.suckless.org/dmenu/patches/gridnav/index.md
@@ -6,6 +6,7 @@ Apply this patch after grid.
Download
--------
* [dmenu-gridnav-5.0.diff](dmenu-gridnav-5.0.diff)
+* [dmenu-gridnav-5.2.diff](dmenu-gridnav-5.2.diff)
Author
------