From 4f1c8a3f2f8dc853109064bb3e28db421dfaeeeb Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Fri, 8 Jul 2016 02:14:47 -0400 Subject: [PATCH] Bug1438: Fix horizontal scrollbar, while still fixing Bug 1197 --- src/Project.cpp | 21 +++++++++++++-------- src/Project.h | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Project.cpp b/src/Project.cpp index a225729ef..ca69f3383 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -1534,8 +1534,7 @@ void AudacityProject::FinishAutoScroll() // Call our Scroll method which updates our ViewInfo variables // to reflect the positions of the scrollbars - wxScrollEvent dummy; - OnScroll(dummy); + DoScroll(); mAutoScrolling = false; } @@ -1600,7 +1599,7 @@ void AudacityProject::OnScrollLeftButton(wxScrollEvent & event) if (pos != mHsbar->GetThumbPosition()) { mHsbar->SetThumbPosition((int)pos); - OnScroll(event); + DoScroll(); } } @@ -1622,7 +1621,7 @@ void AudacityProject::OnScrollRightButton(wxScrollEvent & event) if (pos != mHsbar->GetThumbPosition()) { mHsbar->SetThumbPosition((int)pos); - OnScroll(event); + DoScroll(); } } @@ -1690,8 +1689,7 @@ void AudacityProject::TP_ScrollWindow(double scrollto) // Call our Scroll method which updates our ViewInfo variables // to reflect the positions of the scrollbars - wxScrollEvent dummy; - OnScroll(dummy); + DoScroll(); } // @@ -1718,8 +1716,7 @@ bool AudacityProject::TP_ScrollUpDown(int delta) { mVsbar->SetThumbPosition(pos); - wxScrollEvent dummy; - OnScroll(dummy); + DoScroll(); return true; } else @@ -2087,6 +2084,14 @@ void AudacityProject::OnODTaskComplete(wxCommandEvent & WXUNUSED(event)) } void AudacityProject::OnScroll(wxScrollEvent & WXUNUSED(event)) +{ + const wxInt64 offset = PixelWidthBeforeTime(0.0); + mViewInfo.sbarH = + (wxInt64)(mHsbar->GetThumbPosition() / mViewInfo.sbarScale) - offset; + DoScroll(); +} + +void AudacityProject::DoScroll() { const double lowerBound = ScrollingLowerBoundTime(); diff --git a/src/Project.h b/src/Project.h index 0e33dfb0e..76d727788 100644 --- a/src/Project.h +++ b/src/Project.h @@ -318,6 +318,7 @@ class AUDACITY_DLL_API AudacityProject final : public wxFrame, void OnSize(wxSizeEvent & event); void OnShow(wxShowEvent & event); void OnMove(wxMoveEvent & event); + void DoScroll(); void OnScroll(wxScrollEvent & event); void OnCloseWindow(wxCloseEvent & event); void OnTimer(wxTimerEvent & event);