switch (direction) {
case GDK_SCROLL_UP:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomHorizontalModifier)) {
- //for mouse-wheel zoom, force zoom-focus to mouse
- temporal_zoom_step_mouse_focus (false);
+ 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
- temporal_zoom_step_mouse_focus (true);
+ 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 ();
if (Keyboard::modifier_state_equals(event->scroll.state,
Keyboard::ScrollHorizontalModifier)) {
scroll_left_half_page ();
- } else if (Profile->get_mixbus()) {
- //for mouse-wheel zoom, force zoom-focus to mouse
+ } else if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
temporal_zoom_step_mouse_focus (false);
} else {
temporal_zoom_step (false);
if (Keyboard::modifier_state_equals(event->scroll.state,
Keyboard::ScrollHorizontalModifier)) {
scroll_right_half_page ();
- } else if (Profile->get_mixbus()) {
- //for mouse-wheel zoom, force zoom-focus to mouse
+ } else if (UIConfiguration::instance().get_use_mouse_position_as_zoom_focus_on_scroll()) {
temporal_zoom_step_mouse_focus (true);
} else {
temporal_zoom_step (true);
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_zoom_tools),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_zoom_tools)
));
+
+ add_option (_("Editor"),
+ new BoolOption (
+ "use-mouse-position-as-zoom-focus-on-scroll",
+ _("Always use mouse cursor position as zoom focus when zooming using mouse scroll wheel"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_mouse_position_as_zoom_focus_on_scroll),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_mouse_position_as_zoom_focus_on_scroll)
+ ));
} // !mixbus
add_option (_("Editor"),
UI_CONFIG_VARIABLE (bool, sound_midi_notes, "sound-midi-notes", false)
UI_CONFIG_VARIABLE (bool, show_plugin_scan_window, "show-plugin-scan-window", false)
UI_CONFIG_VARIABLE (bool, show_zoom_tools, "show-zoom-tools", true)
+UI_CONFIG_VARIABLE (bool, use_mouse_position_as_zoom_focus_on_scroll, "use-mouse-position-as-zoom-focus-on-scroll", true)
UI_CONFIG_VARIABLE (bool, widget_prelight, "widget-prelight", true)
UI_CONFIG_VARIABLE (bool, use_tooltips, "use-tooltips", true)
UI_CONFIG_VARIABLE (std::string, mixer_strip_visibility, "mixer-element-visibility", "Input,PhaseInvert,RecMon,SoloIsoLock,Output,Comments")