From c074c7ce525e459a772a7c1dbd0d5054627a8b62 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Tue, 8 May 2018 09:03:20 -0500 Subject: playhead_X_to_grid: Handle the case of GridTypeNone --- gtk2_ardour/editor_ops.cc | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) (limited to 'gtk2_ardour/editor_ops.cc') diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 36a67d0a01..7439ad353f 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -7350,13 +7350,24 @@ Editor::playhead_forward_to_grid () return; } - MusicSample pos (playhead_cursor->current_sample (), 0); + MusicSample pos (playhead_cursor->current_sample (), 0); - if (pos.sample < max_samplepos - 1) { - pos.sample += 2; - snap_to_internal (pos, RoundUpAlways, SnapToGrid, false, true); - _session->request_locate (pos.sample); + if ( _grid_type == GridTypeNone) { + if (pos.sample < max_samplepos - current_page_samples()*0.1) { + pos.sample += current_page_samples()*0.1; + _session->request_locate (pos.sample); + } else { + _session->request_locate (0); + } + } else { + + if (pos.sample < max_samplepos - 1) { + pos.sample += 2; + snap_to_internal (pos, RoundUpAlways, SnapToGrid, false, true); + _session->request_locate (pos.sample); + } } + /* keep PH visible in window */ if (pos.sample > (_leftmost_sample + current_page_samples() *0.9)) { @@ -7374,12 +7385,22 @@ Editor::playhead_backward_to_grid () MusicSample pos (playhead_cursor->current_sample (), 0); - if (pos.sample > 2) { - pos.sample -= 2; - snap_to_internal (pos, RoundDownAlways, SnapToGrid, false, true); - _session->request_locate (pos.sample); + if ( _grid_type == GridTypeNone) { + if ( pos.sample > current_page_samples()*0.1 ) { + pos.sample -= current_page_samples()*0.1; + _session->request_locate (pos.sample); + } else { + _session->request_locate (0); + } + } else { + + if (pos.sample > 2) { + pos.sample -= 2; + snap_to_internal (pos, RoundDownAlways, SnapToGrid, false, true); + _session->request_locate (pos.sample); + } } - + /* keep PH visible in window */ if (pos.sample < (_leftmost_sample + current_page_samples() *0.1)) { reset_x_origin (pos.sample - (current_page_samples()*0.1)); -- cgit v1.2.3