summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 64def8bebc..9ec1014843 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -4691,7 +4691,19 @@ Editor::idle_visual_changer ()
VisualChange::Type p = pending_visual_change.pending;
pending_visual_change.pending = (VisualChange::Type) 0;
- double last_time_origin = horizontal_position ();
+ double const last_time_origin = horizontal_position ();
+
+ if (p & VisualChange::TimeOrigin) {
+ /* This is a bit of a hack, but set_frames_per_unit
+ below will (if called) end up with the
+ CrossfadeViews looking at Editor::leftmost_frame,
+ and if we're changing origin and zoom in the same
+ operation it will be the wrong value unless we
+ update it here.
+ */
+
+ leftmost_frame = pending_visual_change.time_origin;
+ }
if (p & VisualChange::ZoomLevel) {
set_frames_per_unit (pending_visual_change.frames_per_unit);