Fixed handling of menus with no selectable items

This commit is contained in:
Klaus Schmidinger 2005-10-02 15:04:34 +02:00
parent d808293a06
commit 2cc029066b
3 changed files with 7 additions and 5 deletions

View File

@ -3881,3 +3881,4 @@ Video Disk Recorder Revision History
- Added status message "Opening CAM menu..." for an immediate feedback when the CAM
menu has been requested.
- Speeded up initial opening of the CAM menu.
- Fixed handling of menus with no selectable items.

4
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.370 2005/10/02 14:50:44 kls Exp $
* $Id: menu.c 1.371 2005/10/02 14:53:48 kls Exp $
*/
#include "menu.h"
@ -1302,7 +1302,7 @@ cMenuCam::cMenuCam(cCiMenu *CiMenu)
dsyslog("CAM: '%s'", ciMenu->SubTitleText());
}
for (int i = 0; i < ciMenu->NumEntries(); i++) {
Add(new cOsdItem(hk(ciMenu->Entry(i))));
Add(new cOsdItem(hk(ciMenu->Entry(i)), osUnknown, ciMenu->Selectable()));
dsyslog("CAM: '%s'", ciMenu->Entry(i));
}
if (*ciMenu->BottomText()) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: osdbase.c 1.21 2005/10/02 09:23:10 kls Exp $
* $Id: osdbase.c 1.22 2005/10/02 15:00:40 kls Exp $
*/
#include "osdbase.h"
@ -213,8 +213,9 @@ void cOsdMenu::Display(void)
int i = first;
int n = 0;
for (cOsdItem *item = Get(first); item; item = Next(item)) {
displayMenu->SetItem(item->Text(), i - first, i == current, item->Selectable());
if (i == current)
bool CurrentSelectable = (i == current) && item->Selectable();
displayMenu->SetItem(item->Text(), i - first, CurrentSelectable, item->Selectable());
if (CurrentSelectable)
cStatus::MsgOsdCurrentItem(item->Text());
if (++n == displayMenuItems)
break;