diff --git a/libs/gtkmm2ext/gtkmm2ext/pixfader.h b/libs/gtkmm2ext/gtkmm2ext/pixfader.h index d974f5d5bc..e610d40f22 100644 --- a/libs/gtkmm2ext/gtkmm2ext/pixfader.h +++ b/libs/gtkmm2ext/gtkmm2ext/pixfader.h @@ -61,6 +61,9 @@ class PixFader : public Gtk::DrawingArea { void adjustment_changed (); int display_height (); + + static uint fine_scale_modifier; + static uint extra_fine_scale_modifier; }; diff --git a/libs/gtkmm2ext/pixfader.cc b/libs/gtkmm2ext/pixfader.cc index 217fe50d03..b48916ed01 100644 --- a/libs/gtkmm2ext/pixfader.cc +++ b/libs/gtkmm2ext/pixfader.cc @@ -27,6 +27,14 @@ using namespace Gtk; using namespace Gdk; using namespace std; +#ifdef GTKOSX +uint PixFader::fine_scale_modifier = GDK_META_MASK; +#else +uint PixFader::fine_scale_modifier = GDK_CONTROL_MASK; +#endif + +uint PixFader::extra_fine_scale_modifier = GDK_MOD1_MASK; + PixFader::PixFader (Glib::RefPtr belt, Gtk::Adjustment& adj) : adjustment (adj), pixbuf (belt) @@ -205,8 +213,8 @@ PixFader::on_motion_notify_event (GdkEventMotion* ev) return true; } - if (ev->state & GDK_CONTROL_MASK) { - if (ev->state & GDK_MOD1_MASK) { + if (ev->state & fine_scale_modifier) { + if (ev->state & extra_fine_scale_modifier) { scale = 0.05; } else { scale = 0.1;