more panner tweaks
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 22 Dec 2006 04:20:07 +0000 (04:20 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 22 Dec 2006 04:20:07 +0000 (04:20 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1245 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/panner.cc
libs/ardour/globals.cc
libs/gtkmm2ext/barcontroller.cc

index ad985599c9adc23ac171a8f6502efe24f79480ec..a447b69935d6bb858f3e351c2a7cc83b84fb3038 100644 (file)
@@ -84,12 +84,12 @@ PannerBar::button_press (GdkEventButton* ev)
 {
        if (ev->button == 1 && ev->type == GDK_BUTTON_PRESS && ev->y < 10) {
                if (ev->x < triangle_size) {
-                       return true;
+                       adjustment.set_value (adjustment.get_lower());
                } else if (ev->x > (darea.get_width() - triangle_size)) {
-                       return true;
+                       adjustment.set_value (adjustment.get_upper());
                } else if (ev->x > (darea.get_width()/2 - triangle_size) &&
                           ev->x < (darea.get_width()/2 + triangle_size)) {
-                       return true;
+                       adjustment.set_value (adjustment.get_lower() + ((adjustment.get_upper() - adjustment.get_lower()) / 2.0));
                }
        }
 
@@ -99,22 +99,6 @@ PannerBar::button_press (GdkEventButton* ev)
 bool
 PannerBar::button_release (GdkEventButton* ev)
 {
-       drop_grab();
-
-       if (ev->button == 1 && ev->type == GDK_BUTTON_RELEASE && ev->y < 10) {
-               if (ev->x < triangle_size) {
-                       adjustment.set_value (adjustment.get_lower());
-                       return true;
-               } else if (ev->x > (darea.get_width() - triangle_size)) {
-                       adjustment.set_value (adjustment.get_upper());
-                       return true;
-               } else if (ev->x > (darea.get_width()/2 - triangle_size) &&
-                          ev->x < (darea.get_width()/2 + triangle_size)) {
-                       adjustment.set_value (adjustment.get_lower() + ((adjustment.get_upper() - adjustment.get_lower()) / 2.0));
-                       return true;
-               }
-       }
-
        return BarController::button_release (ev);
 }
 
index 74e396bac8dd3eb04f7211c7c3300b08c1cb4155..c68951e525a8e958abcf13ac931015a2d1ec930e 100644 (file)
@@ -398,8 +398,14 @@ ARDOUR::get_system_data_path ()
 {
        string path;
 
-       path += DATA_DIR;
-       path += "/ardour2/";
+       char *envvar;
+
+       if ((envvar = getenv ("ARDOUR_DATA_PATH")) != 0) {
+               path = envvar;
+       } else {
+               path += DATA_DIR;
+               path += "/ardour2/";
+       }
        
        return path;
 }
@@ -408,9 +414,14 @@ string
 ARDOUR::get_system_module_path ()
 {
        string path;
+       char *envvar;
 
-       path += MODULE_DIR;
-       path += "/ardour2/";
+       if ((envvar = getenv ("ARDOUR_MODULE_PATH")) != 0) {
+               path = envvar;
+       } else {
+               path += MODULE_DIR;
+               path += "/ardour2/";
+       }
        
        return path;
 }
index 803cb113cb891a90d9806685db8d09d04d3f0ebf..5dff70cedfd962cf588af211221d0ef65d49c491 100644 (file)
@@ -95,6 +95,8 @@ BarController::drop_grab ()
 bool
 BarController::button_press (GdkEventButton* ev)
 {
+       double fract;
+
        if (binding_proxy.button_press_handler (ev)) {
                return true;
        }
@@ -116,6 +118,9 @@ BarController::button_press (GdkEventButton* ev)
                break;
 
        case 2:
+               fract = ev->x / (darea.get_width() - 2.0);
+               adjustment.set_value (adjustment.get_lower() + fract * (adjustment.get_upper() - adjustment.get_lower()));
+
        case 3:
                break;
 
@@ -130,8 +135,6 @@ BarController::button_press (GdkEventButton* ev)
 bool
 BarController::button_release (GdkEventButton* ev)
 {
-       double fract;
-
        drop_grab ();
        
        switch (ev->button) {
@@ -159,8 +162,6 @@ BarController::button_release (GdkEventButton* ev)
                break;
 
        case 2:
-               fract = ev->x / (darea.get_width() - 2.0);
-               adjustment.set_value (adjustment.get_lower() + fract * (adjustment.get_upper() - adjustment.get_lower()));
                break;
                
        case 3: