summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-01-07 16:19:29 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2005-01-07 16:19:29 +0100
commit5b2aaeaedd5c73edd60afdaaa505b813753f0d32 (patch)
tree7f878e4cc009970e94481a8b42391d2f8fda6881
parent4162bff1e773ffa9b86304faeffb4399f838553f (diff)
downloadvdr-5b2aaeaedd5c73edd60afdaaa505b813753f0d32.tar.gz
vdr-5b2aaeaedd5c73edd60afdaaa505b813753f0d32.tar.bz2
Fixed deleting a menu item in case the next item is not selectable
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--osdbase.c11
3 files changed, 11 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 54fffd7a..c5398e2a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1182,6 +1182,7 @@ Andreas Brugger <brougs78@gmx.net>
Dino Ravnic <dino.ravnic@fer.hr>
for fixing some characters in the iso8859-2 font file
for fixing some errors in the Croatian language texts
+ for fixing deleting a menu item in case the next item is not selectable
Olaf Titz <olaf@bigred.inka.de>
for fixing some typos in the Makefile's 'font' target
diff --git a/HISTORY b/HISTORY
index e30bbdfd..2a2b71ee 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3278,3 +3278,5 @@ Video Disk Recorder Revision History
- Fixed a possible race condition in cDevice::Action() (thanks to Mattias Grönlund).
- Fixed the default quality value when grabbing a JPEG image (thanks to Patrick
Gleichmann).
+- Fixed deleting a menu item in case the next item is not selectable (thanks to
+ Dino Ravnic).
diff --git a/osdbase.c b/osdbase.c
index 42fda30e..ec04adb8 100644
--- a/osdbase.c
+++ b/osdbase.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osdbase.c 1.14 2004/07/17 13:29:13 kls Exp $
+ * $Id: osdbase.c 1.15 2005/01/07 16:16:41 kls Exp $
*/
#include "osdbase.h"
@@ -149,8 +149,13 @@ void cOsdMenu::SetHelp(const char *Red, const char *Green, const char *Yellow, c
void cOsdMenu::Del(int Index)
{
cList<cOsdItem>::Del(Get(Index));
- if (current == Count())
- current--;
+ int count = Count();
+ while (current < count && !SelectableItem(current))
+ current++;
+ if (current == count) {
+ while (current > 0 && !SelectableItem(current))
+ current--;
+ }
if (Index == first && first > 0)
first--;
}