fix zoom focus issue that was messing up zoom changes
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 26 Jun 2013 01:56:10 +0000 (21:56 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 26 Jun 2013 01:56:10 +0000 (21:56 -0400)
gtk2_ardour/editor.cc
gtk2_ardour/editor_ops.cc

index 3318bf91ce7a54b2392f99b481c0b76ad9f8035c..ab2b96439a824e83bc78ad29d00f98bd20fde5b7 100644 (file)
@@ -2265,7 +2265,6 @@ Editor::set_state (const XMLNode& node, int /*version*/)
        if ((prop = node.property ("zoom"))) {
                /* older versions of ardour used floating point samples_per_pixel */
                double f = PBD::atof (prop->value());
-               cerr << "LOADED ZOOM from " << prop->value() << " as " << f << endl;
                reset_zoom (llrintf (f));
        } else {
                reset_zoom (samples_per_pixel);
@@ -4329,6 +4328,7 @@ Editor::idle_visual_changer ()
 
        double const last_time_origin = horizontal_position ();
 
+
        if (p & VisualChange::ZoomLevel) {
                set_samples_per_pixel (pending_visual_change.samples_per_pixel);
 
@@ -4342,9 +4342,7 @@ Editor::idle_visual_changer ()
                compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_samples(),
                                         current_bbt_points_begin, current_bbt_points_end);
                update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end);
-       }
 
-       if (p & VisualChange::ZoomLevel) {
                update_video_timeline();
        }
 
index a19fdde5bfe01b92c8aff149dd3a8fa76791c28b..478569cfdc19067e4e31fbe5f00003736808cb36 100644 (file)
@@ -1395,7 +1395,7 @@ Editor::temporal_zoom (framecnt_t fpp)
        nfpp = min (fpp, 8589934592);
        nfpp = max ((framecnt_t) 1, fpp);
 
-       new_page_size = _visible_canvas_width;
+       new_page_size = (framepos_t) floor (_visible_canvas_width * nfpp);
        half_page_size = new_page_size / 2;
 
        switch (zoom_focus) {