add lastitem and adapt code to general code style
authorphillbush <phillbush@cock.li>
Tue, 22 Sep 2020 22:18:15 +0000 (19:18 -0300)
committerphillbush <phillbush@cock.li>
Tue, 22 Sep 2020 22:18:15 +0000 (19:18 -0300)
xmenu.c

diff --git a/xmenu.c b/xmenu.c
index c29c31d..76761cc 100644 (file)
--- a/xmenu.c
+++ b/xmenu.c
@@ -1209,6 +1209,7 @@ run(struct Menu *currmenu)
        struct Menu *menu;
        struct Item *item;
        struct Item *previtem = NULL;
        struct Menu *menu;
        struct Item *item;
        struct Item *previtem = NULL;
+       struct Item *lastitem;
        KeySym ksym;
        XEvent ev;
 
        KeySym ksym;
        XEvent ev;
 
@@ -1282,11 +1283,10 @@ selectitem:
                                item = itemcycle(currmenu, ITEMNEXT);
                        } else if (ksym >= XK_1 && ksym <= XK_9){
                                item = itemcycle(currmenu, ITEMFIRST);
                                item = itemcycle(currmenu, ITEMNEXT);
                        } else if (ksym >= XK_1 && ksym <= XK_9){
                                item = itemcycle(currmenu, ITEMFIRST);
-                               for(int i = ksym-XK_1; i > 0; i-=1){
+                               lastitem = itemcycle(currmenu, ITEMLAST);
+                               for (int i = ksym - XK_1; i > 0 && item != lastitem; i--) {
                                        currmenu->selected = item;
                                        item = itemcycle(currmenu, ITEMNEXT);
                                        currmenu->selected = item;
                                        item = itemcycle(currmenu, ITEMNEXT);
-                                       if (item == itemcycle(currmenu, ITEMLAST))
-                                               break;
                                }
                        } else if ((ksym == XK_Return || ksym == XK_Right || ksym == KSYMRIGHT) &&
                                    currmenu->selected != NULL) {
                                }
                        } else if ((ksym == XK_Return || ksym == XK_Right || ksym == KSYMRIGHT) &&
                                    currmenu->selected != NULL) {