mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 07:14:56 +01:00
Make scroll-wheel modifier keys consistent in main editor window.
Add constants for the keyboard modifiers that should be used for vertical zoom, horizontal zoom, and horizontal scrolling in the main editor window, and use these where appropriate rather than using Keyboard::PrimaryModifier and friends directly.
This commit is contained in:
parent
e6e5aab812
commit
21914c884e
4 changed files with 18 additions and 8 deletions
|
|
@ -66,17 +66,17 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
|
|||
retry:
|
||||
switch (direction) {
|
||||
case GDK_SCROLL_UP:
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||
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;
|
||||
return true;
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollHorizontalModifier)) {
|
||||
direction = GDK_SCROLL_LEFT;
|
||||
goto retry;
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomVerticalModifier)) {
|
||||
if (!current_stepping_trackview) {
|
||||
step_timeout = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Editor::track_height_step_timeout), 500);
|
||||
std::pair<TimeAxisView*, int> const p = trackview_by_y_position (ev->y + vertical_adjustment.get_value() - canvas_timebars_vsize);
|
||||
|
|
@ -95,17 +95,17 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
|
|||
break;
|
||||
|
||||
case GDK_SCROLL_DOWN:
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||
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;
|
||||
return true;
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollHorizontalModifier)) {
|
||||
direction = GDK_SCROLL_RIGHT;
|
||||
goto retry;
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
|
||||
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomVerticalModifier)) {
|
||||
if (!current_stepping_trackview) {
|
||||
step_timeout = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Editor::track_height_step_timeout), 500);
|
||||
std::pair<TimeAxisView*, int> const p = trackview_by_y_position (ev->y + vertical_adjustment.get_value() - canvas_timebars_vsize);
|
||||
|
|
|
|||
|
|
@ -310,7 +310,7 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
|
|||
{
|
||||
switch (ev->direction) {
|
||||
case GDK_SCROLL_UP:
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomVerticalModifier)) {
|
||||
/* See Editor::_stepping_axis_view for notes on this hack */
|
||||
Editor& e = dynamic_cast<Editor&> (_editor);
|
||||
if (!e.stepping_axis_view ()) {
|
||||
|
|
@ -325,7 +325,7 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
|
|||
break;
|
||||
|
||||
case GDK_SCROLL_DOWN:
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ScrollZoomVerticalModifier)) {
|
||||
/* See Editor::_stepping_axis_view for notes on this hack */
|
||||
Editor& e = dynamic_cast<Editor&> (_editor);
|
||||
if (!e.stepping_axis_view ()) {
|
||||
|
|
|
|||
|
|
@ -59,6 +59,11 @@ class Keyboard : public sigc::trackable, PBD::Stateful
|
|||
static uint32_t GainFineScaleModifier;
|
||||
static uint32_t GainExtraFineScaleModifier;
|
||||
|
||||
// Modifiers for scroll wheel
|
||||
static uint32_t ScrollZoomVerticalModifier;
|
||||
static uint32_t ScrollZoomHorizontalModifier;
|
||||
static uint32_t ScrollHorizontalModifier;
|
||||
|
||||
static const char* primary_modifier_name ();
|
||||
static const char* secondary_modifier_name ();
|
||||
static const char* tertiary_modifier_name ();
|
||||
|
|
|
|||
|
|
@ -94,6 +94,11 @@ const char* Keyboard::rangeselect_modifier_name() { return S_("Key|Shift"); }
|
|||
guint Keyboard::GainFineScaleModifier = Keyboard::PrimaryModifier;
|
||||
guint Keyboard::GainExtraFineScaleModifier = Keyboard::SecondaryModifier;
|
||||
|
||||
guint Keyboard::ScrollZoomVerticalModifier = Keyboard::SecondaryModifier;
|
||||
guint Keyboard::ScrollZoomHorizontalModifier = Keyboard::PrimaryModifier;
|
||||
guint Keyboard::ScrollHorizontalModifier = Keyboard::TertiaryModifier;
|
||||
|
||||
|
||||
Keyboard* Keyboard::_the_keyboard = 0;
|
||||
Gtk::Window* Keyboard::current_window = 0;
|
||||
bool Keyboard::_some_magic_widget_has_focus = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue