diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-10-31 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-10-31 18:00:00 +0100 |
commit | 99e3c093f404b55683a90e38bbe74e1f51c35316 (patch) | |
tree | ed19caa03a60230d65a210a213d35bf62ed9f55f /osdbase.c | |
parent | 88d8d634089bae65bdfea8238a847b7883058072 (diff) | |
download | vdr-patch-lnbsharing-99e3c093f404b55683a90e38bbe74e1f51c35316.tar.gz vdr-patch-lnbsharing-99e3c093f404b55683a90e38bbe74e1f51c35316.tar.bz2 |
Version 1.3.35vdr-1.3.35
- Updated 'sources.conf' (thanks to Philip Prindeville).
- Now using daemon() instead of fork() to run VDR in daemon mode (thanks to
Enrico Scholz).
- Fixed a possible endless loop in a menu with no selectable items if
Setup.MenuScrollWrap is true (thanks to Enrico Scholz).
- Making sure no item is displayed as "current" if Up, Down, Left or Right is
pressed in a menu with no selectable items.
- Added '__attribute__' to functions that use printf() like parameters (thanks
to Darren Salt).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns).
- Added more error messages and line numbers when reading EPG data and info.vdr
(thanks to Peter Bieringer).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported
by Marco Schlüßler).
- Fixed lock handling in CAM communication to avoid problems with multiple CAMs
per device or CAMs with more than one smart card.
- Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
- Updated the French OSD texts (thanks to Nicolas Huillard).
- Fixed the cFilter example in PLUGINS.html (reported by Patrick Fischer).
- The new class cUnbufferedFile is used for the recording files to avoid
trashing the file system cache (based on a patch by Ralf Müller).
Diffstat (limited to 'osdbase.c')
-rw-r--r-- | osdbase.c | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 1.22 2005/10/02 15:00:40 kls Exp $ + * $Id: osdbase.c 1.24 2005/10/09 10:56:26 kls Exp $ */ #include "osdbase.h" @@ -242,8 +242,8 @@ void cOsdMenu::DisplayCurrent(bool Current) { cOsdItem *item = Get(current); if (item) { - displayMenu->SetItem(item->Text(), current - first, Current, item->Selectable()); - if (Current) + displayMenu->SetItem(item->Text(), current - first, Current && item->Selectable(), item->Selectable()); + if (Current && item->Selectable()) cStatus::MsgOsdCurrentItem(item->Text()); if (!Current) item->SetFresh(true); // leaving the current item resets 'fresh' @@ -268,14 +268,16 @@ void cOsdMenu::CursorUp(void) int tmpCurrent = current; int lastOnScreen = first + displayMenuItems - 1; int last = Count() - 1; + if (last < 0) + return; while (--tmpCurrent != current) { if (tmpCurrent < 0) { if (Setup.MenuScrollWrap) - tmpCurrent = last; + tmpCurrent = last + 1; else return; } - if (SelectableItem(tmpCurrent)) + else if (SelectableItem(tmpCurrent)) break; } if (first <= tmpCurrent && tmpCurrent <= lastOnScreen) @@ -298,14 +300,16 @@ void cOsdMenu::CursorDown(void) int tmpCurrent = current; int lastOnScreen = first + displayMenuItems - 1; int last = Count() - 1; + if (last < 0) + return; while (++tmpCurrent != current) { if (tmpCurrent > last) { if (Setup.MenuScrollWrap) - tmpCurrent = 0; + tmpCurrent = -1; else return; } - if (SelectableItem(tmpCurrent)) + else if (SelectableItem(tmpCurrent)) break; } if (first <= tmpCurrent && tmpCurrent <= lastOnScreen) |