summaryrefslogtreecommitdiff
path: root/gtk2_ardour/stereo_panner.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/stereo_panner.cc')
-rw-r--r--gtk2_ardour/stereo_panner.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc
index 12ff72d36f..1e12213168 100644
--- a/gtk2_ardour/stereo_panner.cc
+++ b/gtk2_ardour/stereo_panner.cc
@@ -411,15 +411,25 @@ StereoPanner::on_key_press_event (GdkEventKey* ev)
step = one_degree * 5.0;
}
+ /* up/down control width because we consider pan position more "important"
+ (and thus having higher "sense" priority) than width.
+ */
+
switch (ev->keyval) {
case GDK_Up:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
width_control->set_value (1.0);
} else {
- wv += step;
- width_control->set_value (wv);
+ width_control->set_value (wv + step);
}
break;
+ case GDK_Down:
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
+ width_control->set_value (-1.0);
+ } else {
+ width_control->set_value (wv - step);
+ }
+
case GDK_Left:
pv -= step;
position_control->set_value (pv);
@@ -428,13 +438,6 @@ StereoPanner::on_key_press_event (GdkEventKey* ev)
pv += step;
position_control->set_value (pv);
break;
- case GDK_Down:
- if (Keyboard::modifier_state_equals (ev->state, Keyboard::SecondaryModifier)) {
- width_control->set_value (-1.0);
- } else {
- wv -= step;
- width_control->set_value (wv);
- }
break;
case GDK_0: