# HG changeset patch # User Chris Cannam # Date 1202219205 0 # Node ID 40d0c964ad24faae34b1d4781821eb95c2a34ca7 # Parent 19142c58cc4c927b8e7b709ee1e4f639cdda7b24 * Fix ffwd/rewind in aligned layer diff -r 19142c58cc4c -r 40d0c964ad24 framework/MainWindowBase.cpp --- a/framework/MainWindowBase.cpp Tue Jan 29 19:54:54 2008 +0000 +++ b/framework/MainWindowBase.cpp Tue Feb 05 13:46:45 2008 +0000 @@ -1593,6 +1593,7 @@ int frame = m_viewManager->getPlaybackFrame(); ++frame; + Pane *pane = m_paneStack->getCurrentPane(); Layer *layer = getSnapLayer(); size_t sr = getMainModel()->getSampleRate(); @@ -1607,8 +1608,10 @@ } else { size_t resolution = 0; - if (!layer->snapToFeatureFrame(m_paneStack->getCurrentPane(), - frame, resolution, Layer::SnapRight)) { + if (layer->snapToFeatureFrame(m_paneStack->getCurrentPane(), + frame, resolution, Layer::SnapRight)) { + if (pane) frame = pane->alignToReference(frame); + } else { frame = getMainModel()->getEndFrame(); } } @@ -1644,6 +1647,7 @@ int frame = m_viewManager->getPlaybackFrame(); if (frame > 0) --frame; + Pane *pane = m_paneStack->getCurrentPane(); Layer *layer = getSnapLayer(); size_t sr = getMainModel()->getSampleRate(); @@ -1670,8 +1674,11 @@ } else { size_t resolution = 0; - if (!layer->snapToFeatureFrame(m_paneStack->getCurrentPane(), - frame, resolution, Layer::SnapLeft)) { + if (layer->snapToFeatureFrame(m_paneStack->getCurrentPane(), + frame, resolution, Layer::SnapLeft)) { + + if (pane) frame = pane->alignToReference(frame); + } else { frame = getMainModel()->getStartFrame(); } }