1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-13 16:16:33 +01:00

Bug 406 (P2) - (partial?) Fix for labeltracks in large projects being slow/laggy/jerky.

Undoes Roger's fixes for bug 255/148, as this was one component of the bug.
This fix restores TrackPanel::RefreshTrack to using a cliprect instead of doing an entire refresh.
It does it by using a repair flag in TrackPanel::DoDrawIndicator that does not advance the indicator time (so the only place the time can advance is in OnTimer)

I tested to make sure both bugs were okay after my fix.

This fix may restore usability enough to resolve the bug, but I note that there are other potential optimizations we can make, discussed on the bug 406 bugzilla comments.
This commit is contained in:
mchinen
2011-06-04 02:41:16 +00:00
parent e56cb9736b
commit 9bd2da0284
2 changed files with 90 additions and 85 deletions

View File

@@ -257,7 +257,9 @@ class TrackPanel:public wxPanel {
bool HandleTrackLocationMouseEvent(WaveTrack * track, wxRect &r, wxMouseEvent &event);
void HandleTrackSpecificMouseEvent(wxMouseEvent & event);
void DrawIndicator();
void DoDrawIndicator(wxDC & dc);
/// draws the green line on the tracks to show playback position
/// @param repairOld if true the playback position is not updated/erased, and simply redrawn
void DoDrawIndicator(wxDC & dc, bool repairOld = false);
void DrawCursor();
void DoDrawCursor(wxDC & dc);