commit 8700e556cc3d641483c57dd43afd7a37a0a7450a
Author: Nik-Nothing <[email protected]>
Date:   Fri Jan 20 13:19:05 2023 +0000

    adjusted dmenu gridnav patch for 5.2

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
new file mode 100644
index 00000000..7adc36f8
--- /dev/null
+++ 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] != '+                  cursor = nextrune(+1);
diff --git a/tools.suckless.org/dmenu/patches/gridnav/index.md 
b/tools.suckless.org/dmenu/patches/gridnav/index.md
index 23d29773..84a6b400 100644
--- 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
 ------


Reply via email to