Refactor scrolling track canvas in Editor class into two utility methods
authorTim Mayberry <mojofunk@gmail.com>
Thu, 7 Jan 2016 00:30:29 +0000 (10:30 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Thu, 21 Jan 2016 01:25:55 +0000 (11:25 +1000)
gtk2_ardour/editor.h
gtk2_ardour/editor_canvas_events.cc
gtk2_ardour/editor_ops.cc

index 77156cbb4cafe4c173186007be78a5c7503f6def..b9a393f857080098404dbd672865658bef349a8f 100644 (file)
@@ -374,6 +374,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        bool scroll_up_one_track (bool skip_child_views = false);
        bool scroll_down_one_track (bool skip_child_views = false);
 
+       void scroll_left_step ();
+       void scroll_right_step ();
+
        void prepare_for_cleanup ();
        void finish_cleanup ();
 
index 77cfde08e18997a4ba508e5e9953f37ee4918eb7..c889de072dc85a03c7cbaf245837ef25e55c53fd 100644 (file)
@@ -64,7 +64,6 @@ using Gtkmm2ext::Keyboard;
 bool
 Editor::track_canvas_scroll (GdkEventScroll* ev)
 {
-       framepos_t xdelta;
        int direction = ev->direction;
 
        /* this event arrives without transformation by the canvas, so we have
@@ -134,21 +133,13 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
                break;
 
        case GDK_SCROLL_LEFT:
-               xdelta = (current_page_samples() / 8);
-               if (leftmost_frame > xdelta) {
-                       reset_x_origin (leftmost_frame - xdelta);
-               } else {
-                       reset_x_origin (0);
-               }
+               scroll_left_step ();
+               return true;
                break;
 
        case GDK_SCROLL_RIGHT:
-               xdelta = (current_page_samples() / 8);
-               if (max_framepos - xdelta > leftmost_frame) {
-                       reset_x_origin (leftmost_frame + xdelta);
-               } else {
-                       reset_x_origin (max_framepos - current_page_samples());
-               }
+               scroll_right_step ();
+               return true;
                break;
 
        default:
index cb67f1fc20b696ec085ed0d82eeb9d695dadc40b..33e5e80efa90a0b48bd334079e9a809cce86a6cf 100644 (file)
@@ -1589,6 +1589,31 @@ Editor::scroll_up_one_track (bool skip_child_views)
        return false;
 }
 
+void
+Editor::scroll_left_step ()
+{
+       framepos_t xdelta = (current_page_samples() / 8);
+
+       if (leftmost_frame > xdelta) {
+               reset_x_origin (leftmost_frame - xdelta);
+       } else {
+               reset_x_origin (0);
+       }
+}
+
+
+void
+Editor::scroll_right_step ()
+{
+       framepos_t xdelta = (current_page_samples() / 8);
+
+       if (max_framepos - xdelta > leftmost_frame) {
+               reset_x_origin (leftmost_frame + xdelta);
+       } else {
+               reset_x_origin (max_framepos - current_page_samples());
+       }
+}
+
 /* ZOOM */
 
 void