diff options
author | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2017-09-24 21:37:19 +0200 |
---|---|---|
committer | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2017-09-24 22:58:59 +0200 |
commit | 74c986534bfc29aad7142fcfd0c6ae3dab086112 (patch) | |
tree | 4a481534eaa5def21da09f11d3a90efb87ec6086 /libs/widgets | |
parent | 564fcb2132062c494ef92f35bd8d62268741a5de (diff) |
Simplify the logic of on_scroll_event
Diffstat (limited to 'libs/widgets')
-rw-r--r-- | libs/widgets/ardour_fader.cc | 61 |
1 files changed, 26 insertions, 35 deletions
diff --git a/libs/widgets/ardour_fader.cc b/libs/widgets/ardour_fader.cc index 76478ffeae..f400724241 100644 --- a/libs/widgets/ardour_fader.cc +++ b/libs/widgets/ardour_fader.cc @@ -491,8 +491,6 @@ bool ArdourFader::on_scroll_event (GdkEventScroll* ev) { double increment = 0; - bool ret = false; - if (ev->state & Keyboard::GainFineScaleModifier) { if (ev->state & Keyboard::GainExtraFineScaleModifier) { increment = 0.05 * _adjustment.get_step_increment(); @@ -503,41 +501,34 @@ ArdourFader::on_scroll_event (GdkEventScroll* ev) increment = _adjustment.get_page_increment(); } - if (_orien == VERT) { - switch (ev->direction) { - case GDK_SCROLL_UP: - _adjustment.set_value (_adjustment.get_value() + increment); - ret = true; - break; - case GDK_SCROLL_DOWN: - _adjustment.set_value (_adjustment.get_value() - increment); - ret = true; - break; - default: - break; - } - } else { - int dir = ev->direction; - - if (ev->state & Keyboard::ScrollHorizontalModifier || !(_tweaks & NoVerticalScroll)) { - if (ev->direction == GDK_SCROLL_UP) dir = GDK_SCROLL_RIGHT; - if (ev->direction == GDK_SCROLL_DOWN) dir = GDK_SCROLL_LEFT; - } + bool vertical = false; + switch (ev->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_DOWN: + vertical = !(ev->state & Keyboard::ScrollHorizontalModifier); + break; + default: + break; + } + if ((_orien == VERT && !vertical) || + ((_tweaks & NoVerticalScroll) && vertical)) { + return false; + } - switch (dir) { - case GDK_SCROLL_RIGHT: - _adjustment.set_value (_adjustment.get_value() + increment); - ret = true; - break; - case GDK_SCROLL_LEFT: - _adjustment.set_value (_adjustment.get_value() - increment); - ret = true; - break; - default: - break; - } + switch (ev->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_RIGHT: + _adjustment.set_value (_adjustment.get_value() + increment); + break; + case GDK_SCROLL_DOWN: + case GDK_SCROLL_LEFT: + _adjustment.set_value (_adjustment.get_value() - increment); + break; + default: + return false; } - return ret; + + return true; } bool |