diff --git a/gtk2_ardour/editing_context.cc b/gtk2_ardour/editing_context.cc index 2442b245af..9f10f9cb06 100644 --- a/gtk2_ardour/editing_context.cc +++ b/gtk2_ardour/editing_context.cc @@ -2498,6 +2498,13 @@ EditingContext::reset_y_origin (double y) void EditingContext::reset_zoom (samplecnt_t spp) { + std::pair ext = max_zoom_extent(); + samplecnt_t max_extents_pp = (ext.second.samples() - ext.first.samples()) / _visible_canvas_width; + + if (spp > max_extents_pp) { + spp = max_extents_pp; + } + if (spp == samples_per_pixel) { return; }