sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit bcbd3451f903770c5ae527416356ec922ba1aca0
parent de8a25a1126b381870dcef51abf7ccc6990a07bd
Author: Nathan Sketch <sketchn98@gmail.com>
Date:   Sun, 22 Nov 2020 21:08:45 -0500

[dmenu][patch][gridnav] new patch for moving left and right in a grid

Diffstat:
Atools.suckless.org/dmenu/patches/gridnav/dmenu-gridnav-5.0.diff | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atools.suckless.org/dmenu/patches/gridnav/index.md | 12++++++++++++
2 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/tools.suckless.org/dmenu/patches/gridnav/dmenu-gridnav-5.0.diff b/tools.suckless.org/dmenu/patches/gridnav/dmenu-gridnav-5.0.diff @@ -0,0 +1,72 @@ +diff --git a/dmenu.c b/dmenu.c +index 7361377..76acee6 100644 +--- a/dmenu.c ++++ b/dmenu.c +@@ -7,6 +7,7 @@ + #include <strings.h> + #include <time.h> + #include <unistd.h> ++#include <stdbool.h> + + #include <X11/Xlib.h> + #include <X11/Xatom.h> +@@ -317,6 +318,9 @@ keypress(XKeyEvent *ev) + int len; + KeySym ksym; + Status status; ++ int i; ++ struct item *tmpsel; ++ bool offscreen = false; + + len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status); + switch (status) { +@@ -443,6 +447,24 @@ 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) ++ return; ++ if (tmpsel == curr) ++ offscreen = true; ++ tmpsel = tmpsel->left; ++ } ++ sel = tmpsel; ++ if (offscreen) { ++ curr = prev; ++ calcoffsets(); ++ } ++ break; ++ } + if (cursor > 0 && (!sel || !sel->left || lines > 0)) { + cursor = nextrune(-1); + break; +@@ -479,6 +501,24 @@ 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) ++ return; ++ tmpsel = tmpsel->right; ++ if (tmpsel == next) ++ offscreen = true; ++ } ++ sel = tmpsel; ++ if (offscreen) { ++ curr = next; ++ calcoffsets(); ++ } ++ break; ++ } + if (text[cursor] != '\0') { + cursor = nextrune(+1); + break; diff --git a/tools.suckless.org/dmenu/patches/gridnav/index.md b/tools.suckless.org/dmenu/patches/gridnav/index.md @@ -0,0 +1,12 @@ +gridnav +======= +This patch adds the ability to move left and right through a [grid](../grid). +Apply this patch after grid. + +Download +-------- +* [dmenu-gridnav-5.0.diff](dmenu-gridnav-5.0.diff) + +Author +------ +* Nathan Sketch <sketchn98@gmail.com>