diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2016-01-07 11:26:22 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2016-01-21 11:25:56 +1000 |
commit | 08cbe0532cdb948d993530028dd4e2e1194feea5 (patch) | |
tree | 3b29d049f4ee6375076575a428c43d4d43ba7458 /gtk2_ardour | |
parent | 743e324c6a25a545f7a03bc0c6d16a421116f7f0 (diff) |
Refactor scrolling in Editor ruler canvas area into two utility methods
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas_events.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 22 |
3 files changed, 27 insertions, 13 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index b9a393f857..25945edb0a 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -377,6 +377,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void scroll_left_step (); void scroll_right_step (); + void scroll_left_half_page (); + void scroll_right_half_page (); + void prepare_for_cleanup (); void finish_cleanup (); diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index c439bdaaa3..99abccdc46 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -1018,7 +1018,6 @@ Editor::canvas_meter_marker_event (GdkEvent *event, ArdourCanvas::Item* item, Me bool Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType type) { - framepos_t xdelta; bool handled = false; if (event->type == GDK_SCROLL) { @@ -1056,22 +1055,12 @@ Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType break; case GDK_SCROLL_LEFT: - xdelta = (current_page_samples() / 2); - if (leftmost_frame > xdelta) { - reset_x_origin (leftmost_frame - xdelta); - } else { - reset_x_origin (0); - } + scroll_left_half_page (); handled = true; break; case GDK_SCROLL_RIGHT: - xdelta = (current_page_samples() / 2); - if (max_framepos - xdelta > leftmost_frame) { - reset_x_origin (leftmost_frame + xdelta); - } else { - reset_x_origin (max_framepos - current_page_samples()); - } + scroll_right_half_page (); handled = true; break; diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 33e5e80efa..d0b24be866 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1614,6 +1614,28 @@ Editor::scroll_right_step () } } +void +Editor::scroll_left_half_page () +{ + framepos_t xdelta = (current_page_samples() / 2); + if (leftmost_frame > xdelta) { + reset_x_origin (leftmost_frame - xdelta); + } else { + reset_x_origin (0); + } +} + +void +Editor::scroll_right_half_page () +{ + framepos_t xdelta = (current_page_samples() / 2); + if (max_framepos - xdelta > leftmost_frame) { + reset_x_origin (leftmost_frame + xdelta); + } else { + reset_x_origin (max_framepos - current_page_samples()); + } +} + /* ZOOM */ void |