X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_ops.cc;h=b3b6b0bb452305f22c06fa68d47e7e452659ab07;hb=3ddd797e46b232235deb8d79c34b40f35bb2153b;hp=68240871362cb21cf65749d4d3ea838d3eeb8757;hpb=ad017365f7a73f8ba57f667cc1aa36478b48c50e;p=ardour.git diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 6824087136..b3b6b0bb45 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1640,14 +1640,14 @@ Editor::calc_extra_zoom_edges(framepos_t &start, framepos_t &end) */ GdkScreen* screen = gdk_screen_get_default (); - gint pixwidth = gdk_screen_get_width (screen); - gint mmwidth = gdk_screen_get_width_mm (screen); - double pix_per_mm = (double) pixwidth/ (double) mmwidth; - double one_centimeter_in_pixels = pix_per_mm * 10.0; + const gint pixwidth = gdk_screen_get_width (screen); + const gint mmwidth = gdk_screen_get_width_mm (screen); + const double pix_per_mm = (double) pixwidth/ (double) mmwidth; + const double one_centimeter_in_pixels = pix_per_mm * 10.0; - framepos_t range = end - start; - double new_fpp = (double) range / (double) _visible_canvas_width; - framepos_t extra_samples = (framepos_t) floor (one_centimeter_in_pixels * new_fpp); + const framepos_t range = end - start; + const framecnt_t new_fpp = (framecnt_t) ceil ((double) range / (double) _visible_canvas_width); + const framepos_t extra_samples = (framepos_t) floor (one_centimeter_in_pixels * new_fpp); if (start > extra_samples) { start -= extra_samples; @@ -1662,7 +1662,6 @@ Editor::calc_extra_zoom_edges(framepos_t &start, framepos_t &end) } } - void Editor::temporal_zoom_region (bool both_axes) { @@ -1693,7 +1692,7 @@ Editor::temporal_zoom_region (bool both_axes) return; } - calc_extra_zoom_edges(start, end); + calc_extra_zoom_edges (start, end); /* if we're zooming on both axes we need to save track heights etc. */ @@ -1754,7 +1753,7 @@ Editor::temporal_zoom_selection (bool both_axes) fit_selected_tracks(); } else { - temporal_zoom_region(both_axes); + temporal_zoom_region (both_axes); } @@ -1802,9 +1801,9 @@ Editor::temporal_zoom_by_frame (framepos_t start, framepos_t end) framepos_t range = end - start; - double const new_fpp = (double) range / (double) _visible_canvas_width; - - framepos_t new_page = (framepos_t) floor (_visible_canvas_width * new_fpp); + const framecnt_t new_fpp = (framecnt_t) ceil ((double) range / (double) _visible_canvas_width); + + framepos_t new_page = range; framepos_t middle = (framepos_t) floor ((double) start + ((double) range / 2.0f)); framepos_t new_leftmost = (framepos_t) floor ((double) middle - ((double) new_page / 2.0f));