diff --git a/HISTORY b/HISTORY index 3b7d8c04..58dc5469 100644 --- a/HISTORY +++ b/HISTORY @@ -9264,3 +9264,5 @@ Video Disk Recorder Revision History - Added a note about the fixed UDP port for SVDRP discovery to vdr.1. - Fixed updating the Timers menu after turning a local timer on/off with the Red button. +- Fixed keeping the cursor position in the Recordings menu in case a timer starts + recording while the menu is open. diff --git a/menu.c b/menu.c index ce057839..fc49d0a6 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 4.58 2018/02/10 10:51:49 kls Exp $ + * $Id: menu.c 4.59 2018/02/10 12:32:52 kls Exp $ */ #include "menu.h" @@ -2989,17 +2989,17 @@ void cMenuRecordings::Set(bool Refresh) { if (cRecordings::GetRecordingsRead(recordingsStateKey)) { recordingsStateKey.Remove(); - const char *CurrentRecording = *fileName ? *fileName : cReplayControl::LastReplayed(); cRecordings *Recordings = cRecordings::GetRecordingsWrite(recordingsStateKey); // write access is necessary for sorting! - cMenuRecordingItem *LastItem = NULL; - if (!CurrentRecording) { - if (cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current())) - CurrentRecording = ri->Recording()->FileName(); - } + const char *CurrentRecording = NULL; + if (cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current())) + CurrentRecording = ri->Recording()->FileName(); + if (!CurrentRecording) + CurrentRecording = *fileName ? *fileName : cReplayControl::LastReplayed(); int current = Current(); Clear(); GetRecordingsSortMode(DirectoryName()); Recordings->Sort(); + 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))) { cMenuRecordingItem *Item = new cMenuRecordingItem(Recording, level);