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 ();
bool
Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType type)
{
- framepos_t xdelta;
bool handled = false;
if (event->type == GDK_SCROLL) {
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;
}
}
+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