diff -Naurb vdr-1.5.8.org/menu.c vdr-1.5.8/menu.c --- vdr-1.5.8.org/menu.c 2009-01-10 13:10:29.320758955 -0500 +++ vdr-1.5.8/menu.c 2009-01-10 13:09:21.025634377 -0500 @@ -5000,27 +5000,21 @@ case kRed: if (isLiveRec && !livereplay && (!visible || modeOnly)) return osBUnknown; TimeSearch(); break; - case kGreen|k_Repeat: - case kGreen: if (isLiveRec && !livereplay && (!visible || modeOnly)) - return osBUnknown; - case kJumpRew: if (isLiveRec) + case kGreen: + case kYellow: + case kBlue: return osBUnknown; + case kPrev|k_Repeat: + case kPrev: if (isLiveRec) rew(); - SkipSeconds(-60); break; - case kYellow|k_Repeat: - case kYellow: if (isLiveRec && !livereplay && (!visible || modeOnly)) - return osBUnknown; - case kJumpFwd: SkipSeconds( 60); break; + //going into rew mode we tell it to back up further to match forward jump + SkipSeconds(-41); break; + case kNext|k_Repeat: + case kNext: SkipSeconds( 19); break; case kStop: if (isLiveRec) cLiveRecorderControl::GetLiveRecorder()->rew(false); if (isLiveRec && !livereplay) return osStopReplay; - case kBlue: if (isLiveRec) - cLiveRecorderControl::GetLiveRecorder()->rew(false); - if (isLiveRec && !livereplay && (!visible || modeOnly)) - return osBUnknown; - Hide(); - Stop(); - return osEnd; + return osRecordings; default: { DoShowMode = false; if (isLiveRec && !livereplay && (!visible || modeOnly || Key==kOk) && Key!=kBack) @@ -5054,7 +5048,7 @@ Show(); break; case kBack: if (isLiveRec) - {if (lastViewed) Goto(lastViewed); break;}//return osBUnknown; + break; return osRecordings; default: return osUnknown; }