mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 23:05:04 +01:00
Bug #6722, Add UI config option to always use mouse position as zoom focus on scroll
This means that mouse zoom scrolling behaviour is consistent on the ruler canvas area and track canvas area. The config option defaults to true so this means the behaviour of Mixbus will be unchanged but in Ardour the ruler area will now follow the option so by default will use the mouse position as zoom focus when zooming rather than the zoom focus setting.
This commit is contained in:
parent
6ba6cce799
commit
ab292183dd
3 changed files with 21 additions and 8 deletions
|
|
@ -75,8 +75,11 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
|
|||
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 ();
|
||||
|
|
@ -101,8 +104,11 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
|
|||
|
||||
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 ();
|
||||
|
|
@ -1025,8 +1031,7 @@ Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType
|
|||
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);
|
||||
|
|
@ -1038,8 +1043,7 @@ Editor::canvas_ruler_event (GdkEvent *event, ArdourCanvas::Item* item, ItemType
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -2108,6 +2108,14 @@ if (!Profile->get_mixbus()) {
|
|||
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"),
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ UI_CONFIG_VARIABLE (bool, never_display_periodic_midi, "never-display-periodic-m
|
|||
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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue