From e4e21f4d073ab00b1a0bb6ff6ca49f28b02fd68a Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Sun, 21 Feb 2021 12:14:16 -0600 Subject: [PATCH] snap revisited: somewhat better choice of ruler scale for 3,5,7 --- gtk2_ardour/editor_rulers.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc index 5ace6230c3..0ce2d567d2 100644 --- a/gtk2_ardour/editor_rulers.cc +++ b/gtk2_ardour/editor_rulers.cc @@ -1042,19 +1042,20 @@ Editor::compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper) /* Now that we know how fine a grid (Ruler) is allowable on this screen, limit it to the coarseness selected by the user */ /* note: GridType and RulerScale are not the same enums, so it's not a simple mathematical operation */ int suggested_scale = (int) bbt_ruler_scale; + int divs = get_grid_music_divisions(_grid_type); if (_grid_type == GridTypeBar) { suggested_scale = std::min(suggested_scale, (int) bbt_show_1); } else if (_grid_type == GridTypeBeat) { suggested_scale = std::min(suggested_scale, (int) bbt_show_quarters); - } else if (_grid_type == GridTypeBeatDiv2) { + } else if ( divs < 4 ) { suggested_scale = std::min(suggested_scale, (int) bbt_show_eighths); - } else if (_grid_type == GridTypeBeatDiv4) { + } else if ( divs < 8 ) { suggested_scale = std::min(suggested_scale, (int) bbt_show_sixteenths); - } else if (_grid_type == GridTypeBeatDiv8) { + } else if ( divs < 16 ) { suggested_scale = std::min(suggested_scale, (int) bbt_show_thirtyseconds); - } else if (_grid_type == GridTypeBeatDiv16) { + } else if ( divs < 32 ) { suggested_scale = std::min(suggested_scale, (int) bbt_show_sixtyfourths); - } else if (_grid_type == GridTypeBeatDiv32) { + } else { suggested_scale = std::min(suggested_scale, (int) bbt_show_onetwentyeighths); }