switch (direction) {
case GDK_SCROLL_UP:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomHorizontalModifier)) {
- //for mouse-wheel zoom, force zoom-focus to mouse
- Editing::ZoomFocus temp_focus = zoom_focus;
- zoom_focus = Editing::ZoomFocusMouse;
- temporal_zoom_step (false);
- zoom_focus = temp_focus;
+ if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
+ temporal_zoom_step_mouse_focus (false);
+ } else {
+ temporal_zoom_step (false);
+ }
return true;
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollHorizontalModifier)) {
scroll_left_step ();
case GDK_SCROLL_DOWN:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomHorizontalModifier)) {
- //for mouse-wheel zoom, force zoom-focus to mouse
- Editing::ZoomFocus temp_focus = zoom_focus;
- zoom_focus = Editing::ZoomFocusMouse;
- temporal_zoom_step (true);
- zoom_focus = temp_focus;
+ if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
+ temporal_zoom_step_mouse_focus (true);
+ } else {
+ temporal_zoom_step (true);
+ }
return true;
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollHorizontalModifier)) {
scroll_right_step ();
bool
Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType type)
{
- framepos_t xdelta;
bool handled = false;
if (event->type == GDK_SCROLL) {
switch (event->scroll.direction) {
case GDK_SCROLL_UP:
-
- if (Profile->get_mixbus()) {
- //for mouse-wheel zoom, force zoom-focus to mouse
- Editing::ZoomFocus temp_focus = zoom_focus;
- zoom_focus = Editing::ZoomFocusMouse;
- temporal_zoom_step (false);
- zoom_focus = temp_focus;
+ if (Keyboard::modifier_state_equals(event->scroll.state,
+ Keyboard::ScrollHorizontalModifier)) {
+ scroll_left_half_page ();
+ } else if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
+ temporal_zoom_step_mouse_focus (false);
} else {
temporal_zoom_step (false);
}
break;
case GDK_SCROLL_DOWN:
- if (Profile->get_mixbus()) {
- //for mouse-wheel zoom, force zoom-focus to mouse
- Editing::ZoomFocus temp_focus = zoom_focus;
- zoom_focus = Editing::ZoomFocusMouse;
- temporal_zoom_step (true);
- zoom_focus = temp_focus;
+ if (Keyboard::modifier_state_equals(event->scroll.state,
+ Keyboard::ScrollHorizontalModifier)) {
+ scroll_right_half_page ();
+ } else if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
+ temporal_zoom_step_mouse_focus (true);
} else {
temporal_zoom_step (true);
}
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;