From 3db345c707ab6c5cfa76adff2351d0088f0bea4d Mon Sep 17 00:00:00 2001 From: albeu Date: Mon, 27 Mar 2006 19:27:42 +0000 Subject: Fix cycling in menu with hidden items. Thanks again to Jonas Jermann for the report. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17981 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmenu/menu_list.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'libmenu/menu_list.c') diff --git a/libmenu/menu_list.c b/libmenu/menu_list.c index 3e1f4f621c..975b30f958 100644 --- a/libmenu/menu_list.c +++ b/libmenu/menu_list.c @@ -135,21 +135,25 @@ void menu_list_draw(menu_t* menu,mp_image_t* mpi) { 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; -- cgit v1.2.3