diff --git a/HISTORY b/HISTORY index 93e5fd09..905f7f70 100644 --- a/HISTORY +++ b/HISTORY @@ -7330,3 +7330,9 @@ Video Disk Recorder Revision History a recording when actually cutting the recording + not doing anything if the editing marks in place would result in the edited version being the same as the original recording +- Editing marks can now be placed directly on top of each other, in which case they + simply mark a position, but have no effect on the actual cutting process. +- When positioned at an offset where two (or more) editing marks are placed on top + of each other, the '4' key moves the first one of them to the left, while the '6' + key moves the last one of them to the right. The '7' and '9' key handle multiple + marks at the same place as if it were one single mark. diff --git a/menu.c b/menu.c index 7837922f..9ade0376 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 2.63 2012/11/13 11:23:25 kls Exp $ + * $Id: menu.c 2.64 2012/11/18 13:00:33 kls Exp $ */ #include "menu.h" @@ -4771,12 +4771,12 @@ void cReplayControl::MarkMove(bool Forward) int p = SkipFrames(Forward ? 1 : -1); cMark *m2; if (Forward) { - if ((m2 = marks.Next(m)) != NULL && m2->Position() <= p) - return; + while ((m2 = marks.Next(m)) != NULL && m2->Position() == m->Position()) + m = m2; } else { - if ((m2 = marks.Prev(m)) != NULL && m2->Position() >= p) - return; + while ((m2 = marks.Prev(m)) != NULL && m2->Position() == m->Position()) + m = m2; } m->SetPosition(p); Goto(m->Position(), true);