sites

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

dmenu-nodefaultsel-20240105-9a6ef61.diff (1530B)


      1 From 9a6ef6174ade2913e940d453f81c488b47d365fa Mon Sep 17 00:00:00 2001
      2 From: vishal <vishal340@github.com>
      3 Date: Fri, 5 Jan 2024 16:54:19 +0530
      4 Subject: [PATCH] With this patch dmenu will no longer select the first item by
      5  default and you can use right and left key for bothmoving in text and drop
      6  down. dependencies: grid and gridnav
      7 
      8 ---
      9  dmenu.c | 14 +++++++++++---
     10  1 file changed, 11 insertions(+), 3 deletions(-)
     11 
     12 diff --git a/dmenu.c b/dmenu.c
     13 index 1a76e1b..050073b 100644
     14 --- a/dmenu.c
     15 +++ b/dmenu.c
     16 @@ -282,7 +282,7 @@ match(void)
     17  			matches = lsubstr;
     18  		matchend = substrend;
     19  	}
     20 -	curr = sel = matches;
     21 +	curr = matches;
     22  	calcoffsets();
     23  }
     24  
     25 @@ -467,8 +467,10 @@ insert:
     26  		break;
     27  	case XK_Left:
     28  		if (columns > 1) {
     29 -			if (!sel)
     30 +			if (!sel){
     31 +				system("xdotool key KP_Left");
     32  				return;
     33 +			}
     34  			tmpsel = sel;
     35  			for (i = 0; i < lines; i++) {
     36  				if (!tmpsel->left || tmpsel->left->right != tmpsel) {
     37 @@ -501,6 +503,8 @@ insert:
     38  			curr = prev;
     39  			calcoffsets();
     40  		}
     41 +		else if (sel && !sel->left)
     42 +			sel = NULL;
     43  		break;
     44  	case XK_Next:
     45  	case XK_KP_Next:
     46 @@ -528,8 +532,10 @@ insert:
     47  		break;
     48  	case XK_Right:
     49  		if (columns > 1) {
     50 -			if (!sel)
     51 +			if (!sel) {
     52 +				system("xdotool key KP_Right");
     53  				return;
     54 +			}
     55  			tmpsel = sel;
     56  			for (i = 0; i < lines; i++) {
     57  				if (!tmpsel->right ||  tmpsel->right->left != tmpsel) {
     58 @@ -562,6 +568,8 @@ insert:
     59  			curr = next;
     60  			calcoffsets();
     61  		}
     62 +		else if (!sel && curr)
     63 +			sel = curr;
     64  		break;
     65  	case XK_Tab:
     66  		if (!sel)
     67 -- 
     68 2.43.0
     69