# HG changeset patch # User albeu # Date 1143487662 0 # Node ID 05b65e0b8d6ff1954b548802c8fe20f47f1a1e52 # Parent 392c7c1b8ccc04176568fabcd0995837ddc6fe3f Fix cycling in menu with hidden items. Thanks again to Jonas Jermann for the report. diff -r 392c7c1b8ccc -r 05b65e0b8d6f libmenu/menu_list.c --- a/libmenu/menu_list.c Mon Mar 27 18:33:23 2006 +0000 +++ b/libmenu/menu_list.c Mon Mar 27 19:27:42 2006 +0000 @@ -135,21 +135,25 @@ void menu_list_read_cmd(menu_t* menu,int cmd) { switch(cmd) { case MENU_CMD_UP: - if(!mpriv->current->prev) { - for( ; mpriv->current->next != NULL ; mpriv->current = mpriv->current->next) - /* NOTHING */; + while(mpriv->current->prev) { + mpriv->current = mpriv->current->prev; if(!mpriv->current->hide) return; } + for( ; mpriv->current->next != NULL ; mpriv->current = mpriv->current->next) + /* NOTHING */; + if(!mpriv->current->hide) return; while(mpriv->current->prev) { mpriv->current = mpriv->current->prev; if(!mpriv->current->hide) return; } break; case MENU_CMD_DOWN: - if(!mpriv->current->next) { - mpriv->current = mpriv->menu; + while(mpriv->current->next) { + mpriv->current = mpriv->current->next; if(!mpriv->current->hide) return; } + mpriv->current = mpriv->menu; + if(!mpriv->current->hide) return; while(mpriv->current->next) { mpriv->current = mpriv->current->next; if(!mpriv->current->hide) return;