1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-06 07:09:39 +02:00

Bug1520: Correct TQP when snap-to-nearest second & region selection

This commit is contained in:
Paul Licameli 2017-07-22 19:44:09 -04:00
parent d9c3a02542
commit f4c3f19dd1
2 changed files with 7 additions and 2 deletions

View File

@ -2516,6 +2516,7 @@ void AdornedRulerPanel::HandleQPClick(wxMouseEvent &evt, wxCoord mousePosX)
mProject->OnUnlockPlayRegion();
}
mLeftDownClickUnsnapped = mQuickPlayPosUnsnapped;
mLeftDownClick = mQuickPlayPos;
bool isWithinStart = IsWithinMarker(mousePosX, mOldPlayRegionStart);
bool isWithinEnd = IsWithinMarker(mousePosX, mOldPlayRegionEnd);
@ -2550,7 +2551,9 @@ void AdornedRulerPanel::HandleQPClick(wxMouseEvent &evt, wxCoord mousePosX)
void AdornedRulerPanel::HandleQPDrag(wxMouseEvent &/*event*/, wxCoord mousePosX)
{
bool isWithinClick = (mLeftDownClick >= 0) && IsWithinMarker(mousePosX, mLeftDownClick);
bool isWithinClick =
(mLeftDownClickUnsnapped >= 0) &&
IsWithinMarker(mousePosX, mLeftDownClickUnsnapped);
bool isWithinStart = IsWithinMarker(mousePosX, mOldPlayRegionStart);
bool isWithinEnd = IsWithinMarker(mousePosX, mOldPlayRegionEnd);
bool canDragSel = !mPlayRegionLock && mPlayRegionDragsSelection;
@ -2881,7 +2884,7 @@ void AdornedRulerPanel::UpdateQuickPlayPos(wxCoord &mousePosX)
mousePosX = std::min(mousePosX, tp->GetLeftOffset() + width - 1);
mLastMouseX = mousePosX;
mQuickPlayPos = Pos2Time(mousePosX);
mQuickPlayPosUnsnapped = mQuickPlayPos = Pos2Time(mousePosX);
}
// Pop-up menus

View File

@ -401,6 +401,7 @@ private:
double mIndTime;
double mQuickPlayPosUnsnapped;
double mQuickPlayPos;
std::unique_ptr<SnapManager> mSnapManager;
@ -444,6 +445,7 @@ private:
};
MouseEventState mMouseEventState;
double mLeftDownClickUnsnapped; // click position in seconds, before snap
double mLeftDownClick; // click position in seconds
int mLastMouseX; // Pixel position
bool mIsDragging;