wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit f3920c44ddd0135af7f37bc3b651fb1c51f23f4c
parent a31c2af833ea55f138b1833a982973e83f482b73
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Thu, 19 Jan 2006 18:29:20 +0200

applied Sander's wmiimenu XK_Tab patch


Diffstat:
cmd/wmiimenu.c | 21++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/cmd/wmiimenu.c b/cmd/wmiimenu.c @@ -451,10 +451,17 @@ handle_kpress(XKeyEvent * e) } else return; break; - case XK_Right: case XK_Tab: if(!sel) return; + if(strncmp(text,sel->file->name,strlen(sel->file->name))!=0) { + set_text(sel->file->name); + break; + } //if this didn't happen, we should continue with XK_Right behavior, + //so no "break;" here + case XK_Right: + if(!sel) + return; if(sel->next) { sel = sel->next; set_text(sel->file->name); @@ -489,9 +496,17 @@ handle_kpress(XKeyEvent * e) if(len) { size_t i = len; if(i) { - do + int prev_nitems; + update_items(text); //make sure nitems is in sync with text; + //this may not be the case when the user has + //has been using XK_Left or XK_Right + do { text[--i] = 0; - while(nitems && i && nitems == update_items(text)); + prev_nitems = nitems; //since update_items changes nitems, + //nitems == update_items(text) is always true; + //hence prev_nitems + } + while(nitems && i && prev_nitems == update_items(text)); } set_text(text); update_items(files[M_COMMAND]->content);