Use the same logic to decide on step size when scroll-wheeling faders in the mixer and knobs in the monitor section (part of #4726).
git-svn-id: svn://localhost/ardour2/branches/3.0@12510 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
556732df80
commit
6a4628e50a
@ -56,6 +56,8 @@ class Keyboard : public sigc::trackable, PBD::Stateful
|
||||
static uint32_t Level4Modifier;
|
||||
static uint32_t CopyModifier;
|
||||
static uint32_t RangeSelectModifier;
|
||||
static uint32_t GainFineScaleModifier;
|
||||
static uint32_t GainExtraFineScaleModifier;
|
||||
|
||||
static const char* primary_modifier_name ();
|
||||
static const char* secondary_modifier_name ();
|
||||
|
@ -85,9 +85,6 @@ class PixFader : public Gtk::DrawingArea
|
||||
int display_span ();
|
||||
void set_adjustment_from_event (GdkEventButton *);
|
||||
void update_unity_position ();
|
||||
|
||||
static int fine_scale_modifier;
|
||||
static int extra_fine_scale_modifier;
|
||||
};
|
||||
|
||||
|
||||
|
@ -91,6 +91,9 @@ const char* Keyboard::rangeselect_modifier_name() { return S_("Key|Shift"); }
|
||||
|
||||
#endif
|
||||
|
||||
guint Keyboard::GainFineScaleModifier = Keyboard::PrimaryModifier;
|
||||
guint Keyboard::GainExtraFineScaleModifier = Keyboard::SecondaryModifier;
|
||||
|
||||
Keyboard* Keyboard::_the_keyboard = 0;
|
||||
Gtk::Window* Keyboard::current_window = 0;
|
||||
bool Keyboard::_some_magic_widget_has_focus = false;
|
||||
|
@ -381,23 +381,25 @@ MotionFeedback::pixwin_scroll_event (GdkEventScroll* ev)
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((ev->state & (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) == (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) {
|
||||
scale = 0.01;
|
||||
} else if (ev->state & Keyboard::PrimaryModifier) {
|
||||
scale = 0.1;
|
||||
if (ev->state & Keyboard::GainFineScaleModifier) {
|
||||
if (ev->state & Keyboard::GainExtraFineScaleModifier) {
|
||||
scale = 0.01;
|
||||
} else {
|
||||
scale = 0.05;
|
||||
}
|
||||
} else {
|
||||
scale = 1.0;
|
||||
scale = 0.25;
|
||||
}
|
||||
|
||||
switch (ev->direction) {
|
||||
case GDK_SCROLL_UP:
|
||||
case GDK_SCROLL_RIGHT:
|
||||
_controllable->set_value (adjust (scale * step_inc));
|
||||
_controllable->set_value (adjust (scale * page_inc));
|
||||
break;
|
||||
|
||||
case GDK_SCROLL_DOWN:
|
||||
case GDK_SCROLL_LEFT:
|
||||
_controllable->set_value (adjust (-scale * step_inc));
|
||||
_controllable->set_value (adjust (-scale * page_inc));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -28,9 +28,6 @@ using namespace Gtkmm2ext;
|
||||
using namespace Gtk;
|
||||
using namespace std;
|
||||
|
||||
int PixFader::fine_scale_modifier = Keyboard::PrimaryModifier;
|
||||
int PixFader::extra_fine_scale_modifier = Keyboard::SecondaryModifier;
|
||||
|
||||
PixFader::PixFader (Glib::RefPtr<Gdk::Pixbuf> belt, Gtk::Adjustment& adj, int orientation, int fader_length)
|
||||
|
||||
: adjustment (adj),
|
||||
@ -221,7 +218,7 @@ PixFader::on_button_release_event (GdkEventButton* ev)
|
||||
|
||||
if (ev->state & Keyboard::TertiaryModifier) {
|
||||
adjustment.set_value (default_value);
|
||||
} else if (ev->state & fine_scale_modifier) {
|
||||
} else if (ev->state & Keyboard::GainFineScaleModifier) {
|
||||
adjustment.set_value (adjustment.get_lower());
|
||||
} else if ((_orien == VERT && ev_pos < span - display_span()) || (_orien == HORIZ && ev_pos > span - display_span())) {
|
||||
/* above the current display height, remember X Window coords */
|
||||
@ -255,8 +252,8 @@ PixFader::on_scroll_event (GdkEventScroll* ev)
|
||||
double scale;
|
||||
bool ret = false;
|
||||
|
||||
if (ev->state & fine_scale_modifier) {
|
||||
if (ev->state & extra_fine_scale_modifier) {
|
||||
if (ev->state & Keyboard::GainFineScaleModifier) {
|
||||
if (ev->state & Keyboard::GainExtraFineScaleModifier) {
|
||||
scale = 0.01;
|
||||
} else {
|
||||
scale = 0.05;
|
||||
@ -320,8 +317,8 @@ PixFader::on_motion_notify_event (GdkEventMotion* ev)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ev->state & fine_scale_modifier) {
|
||||
if (ev->state & extra_fine_scale_modifier) {
|
||||
if (ev->state & Keyboard::GainFineScaleModifier) {
|
||||
if (ev->state & Keyboard::GainExtraFineScaleModifier) {
|
||||
scale = 0.05;
|
||||
} else {
|
||||
scale = 0.1;
|
||||
|
Loading…
Reference in New Issue
Block a user