- if (currentPos == SEEK_INACTIVE) currentPos = m_document->renderer()->seekFramePosition();
- if (currentPos + delta < 0) delta = 0 - currentPos;
- currentPos += delta;
+ int actualPos = m_document->renderer()->seekPosition().frames(m_document->fps());
+ int min;
+ int max;
+ if (currentPos == SEEK_INACTIVE) {
+ currentPos = actualPos + delta;
+ if (currentPos < 0) currentPos = 0;
+ min = qMin(actualPos, currentPos) - 5;
+ max = qMax(actualPos, currentPos) + 5;
+ }
+ else {
+ min = qMin(currentPos, currentPos + delta);
+ min = qMin (min, actualPos) - 5;
+ max = qMax(currentPos, currentPos + delta);
+ max = qMax(max, actualPos) + 5;
+ currentPos += delta;
+ if (currentPos < 0) currentPos = 0;
+ }
+