diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2018-03-24 11:58:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2018-03-24 11:58:00 +0100 |
commit | e1a71ce7cc2bd828df5409faa3ad59ff6cf830bf (patch) | |
tree | c7ea04f3cd2b9e5e3e9bfa09a9e6534267ea15c2 | |
parent | 53aea17949a184d264bfd98c8e669b94997bfc79 (diff) | |
download | vdr-e1a71ce7cc2bd828df5409faa3ad59ff6cf830bf.tar.gz vdr-e1a71ce7cc2bd828df5409faa3ad59ff6cf830bf.tar.bz2 |
Fixed setting the initial offset of the cursor in a list menu
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | menu.c | 8 | ||||
-rw-r--r-- | osdbase.c | 5 |
4 files changed, 11 insertions, 5 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 5125b57b..b1ff906a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3310,6 +3310,7 @@ Matthias Senzel <matthias.senzel@t-online.de> lock is held while the error message is displayed for reporting that the info of a newly edited recording was not available immediately after starting the editing process + for reporting a problem with setting the initial offset of the cursor in a list menu Marek Nazarko <mnazarko@gmail.com> for translating OSD texts to the Polish language @@ -9329,3 +9329,5 @@ Video Disk Recorder Revision History - Fixed a possible discrepancy of the primary device number in the LSTD and PRIM commands, by setting Setup.PrimaryDVB in cDevice::SetPrimaryDevice() (reported by Jürgen Schneider). +- Fixed setting the initial offset of the cursor in a list menu (reported by Matthias + Senzel). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 4.69 2018/03/18 12:01:09 kls Exp $ + * $Id: menu.c 4.70 2018/03/24 11:43:40 kls Exp $ */ #include "menu.h" @@ -3010,6 +3010,7 @@ void cMenuRecordings::Set(bool Refresh) Clear(); GetRecordingsSortMode(DirectoryName()); Recordings->Sort(); + cMenuRecordingItem *CurrentItem = NULL; cMenuRecordingItem *LastItem = NULL; for (const cRecording *Recording = Recordings->First(); Recording; Recording = Recordings->Next(Recording)) { if ((!filter || filter->Filter(Recording)) && (!base || (strstr(Recording->Name(), base) == Recording->Name() && Recording->Name()[strlen(base)] == FOLDERDELIMCHAR))) { @@ -3035,15 +3036,16 @@ void cMenuRecordings::Set(bool Refresh) if (LastItem || LastDir) { if (*path) { if (strcmp(path, Recording->Folder()) == 0) - SetCurrent(LastDir ? LastDir : LastItem); + CurrentItem = LastDir ? LastDir : LastItem; } else if (CurrentRecording && strcmp(CurrentRecording, Recording->FileName()) == 0) - SetCurrent(LastDir ? LastDir : LastItem); + CurrentItem = LastDir ? LastDir : LastItem; } if (LastDir) LastDir->IncrementCounter(Recording->IsNew()); } } + SetCurrent(CurrentItem); if (Current() < 0) SetCurrent(Get(current)); // last resort, in case the recording was deleted SetMenuSortMode(RecordingsSortMode == rsmName ? msmName : msmTime); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 4.4 2018/03/06 10:38:18 kls Exp $ + * $Id: osdbase.c 4.5 2018/03/24 11:47:45 kls Exp $ */ #include "osdbase.h" @@ -330,7 +330,8 @@ void cOsdMenu::Clear(void) { if (marked >= 0) SetStatus(NULL); - lastOffset = (current > first) ? current - first : 0; + if (current >= 0) + lastOffset = (current > first) ? current - first : 0; first = 0; current = marked = -1; cList<cOsdItem>::Clear(); |