diff options
-rw-r--r-- | HISTORY | 6 | ||||
-rw-r--r-- | menu.c | 10 |
2 files changed, 11 insertions, 5 deletions
@@ -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. @@ -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); |