make fine-tuning modifiers for PixFader platform specific
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 15 Feb 2008 20:39:43 +0000 (20:39 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 15 Feb 2008 20:39:43 +0000 (20:39 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3063 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/gtkmm2ext/gtkmm2ext/pixfader.h
libs/gtkmm2ext/pixfader.cc

index d974f5d5bc64b153d7028ca5d51596c9039d0c75..e610d40f229e0b8102e0647c1fc910240debb6b9 100644 (file)
@@ -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;
 };
 
 
index 217fe50d03017544a1006e0fd4fe19903669c1c8..b48916ed015fa80f05616afbe61fb7c02addbb34 100644 (file)
@@ -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<Pixbuf> 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;