From dc9549df53bfab74208e34052458e8f051bdbc5f Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sat, 25 Jul 2015 20:54:55 -0400 Subject: [PATCH 1/2] Bug1095 -- quantize times when drawing selection backgroun in wave track --- src/TrackArtist.cpp | 18 +++++++++++------- src/TrackArtist.h | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/TrackArtist.cpp b/src/TrackArtist.cpp index 98ccd6b3d..a6d23eaa1 100644 --- a/src/TrackArtist.cpp +++ b/src/TrackArtist.cpp @@ -992,11 +992,10 @@ void TrackArtist::DrawNegativeOffsetTrackArrows(wxDC &dc, const wxRect &rect) void TrackArtist::DrawWaveformBackground(wxDC &dc, int leftOffset, const wxRect &rect, const double env[], float zoomMin, float zoomMax, bool dB, - const SelectedRegion &selectedRegion, + double t0, double t1, const ZoomInfo &zoomInfo, bool drawEnvelope, bool bIsSyncLockSelected) { - const double t0 = selectedRegion.t0(), t1 = selectedRegion.t1(); // Visually (one vertical slice of the waveform background, on its side; // the "*" is the actual waveform background we're drawing @@ -1728,11 +1727,16 @@ void TrackArtist::DrawClipWaveform(WaveTrack *track, // Draw the background of the track, outlining the shape of // the envelope and using a colored pen for the selected // part of the waveform - DrawWaveformBackground(dc, leftOffset, mid, - env, - zoomMin, zoomMax, dB, - selectedRegion, zoomInfo, drawEnvelope, - !track->GetSelected()); + { + double t0, t1; + t0 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t0())), + t1 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t1())); + DrawWaveformBackground(dc, leftOffset, mid, + env, + zoomMin, zoomMax, dB, + t0, t1, zoomInfo, drawEnvelope, + !track->GetSelected()); + } WaveDisplay display(hiddenMid.width); bool isLoadingOD = false;//true if loading on demand block in sequence. diff --git a/src/TrackArtist.h b/src/TrackArtist.h index 5c96ca38a..5001e294c 100644 --- a/src/TrackArtist.h +++ b/src/TrackArtist.h @@ -154,7 +154,7 @@ class AUDACITY_DLL_API TrackArtist { void DrawWaveformBackground(wxDC & dc, int leftOffset, const wxRect &rect, const double env[], float zoomMin, float zoomMax, bool dB, - const SelectedRegion &selectedRegion, const ZoomInfo &zoomInfo, + double t0, double t1, const ZoomInfo &zoomInfo, bool drawEnvelope, bool bIsSyncLockSelected); void DrawMinMaxRMS(wxDC &dc, const wxRect & rect, const double env[], float zoomMin, float zoomMax, bool dB, From a548303fdc1d4d140b5d8858b9739459c6c104a6 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sat, 25 Jul 2015 22:03:26 -0400 Subject: [PATCH 2/2] Bug1090: Draw sync-lock tiles only when we should --- src/TrackArtist.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/TrackArtist.cpp b/src/TrackArtist.cpp index a6d23eaa1..460a942ce 100644 --- a/src/TrackArtist.cpp +++ b/src/TrackArtist.cpp @@ -1729,8 +1729,12 @@ void TrackArtist::DrawClipWaveform(WaveTrack *track, // part of the waveform { double t0, t1; - t0 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t0())), - t1 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t1())); + if (track->GetSelected() || track->IsSyncLockSelected()) { + t0 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t0())), + t1 = track->LongSamplesToTime(track->TimeToLongSamples(selectedRegion.t1())); + } + else + t0 = t1 = 0.0; DrawWaveformBackground(dc, leftOffset, mid, env, zoomMin, zoomMax, dB,