Fixed compile warnings.
[ardour.git] / gtk2_ardour / ardour_ui2.cc
index 847b1b236bec7024b74b69383aa1b8fc1fd4ad88..f92201e36c543e75bb5dc42238237b7d6bc0987c 100644 (file)
@@ -47,6 +47,7 @@
 
 using namespace std;
 using namespace ARDOUR;
+using namespace PBD;
 using namespace Gtkmm2ext;
 using namespace Gtk;
 using namespace Glib;
@@ -652,8 +653,15 @@ ARDOUR_UI::shuttle_box_button_release (GdkEventButton* ev)
                shuttle_grabbed = false;
                shuttle_box.remove_modal_grab ();
                if (shuttle_behaviour == Sprung) {
-                       shuttle_fract = SHUTTLE_FRACT_SPEED1;
-                       session->request_transport_speed (1.0);
+                       if (session->get_auto_play() || roll_button.get_state()) {
+                               shuttle_fract = SHUTTLE_FRACT_SPEED1;                           
+                               session->request_transport_speed (1.0);
+                               stop_button.set_active (false);
+                               roll_button.set_active (true);
+                       } else {
+                               shuttle_fract = 0;
+                               session->request_transport_speed (0.0);
+                       }
                        shuttle_box.queue_draw ();
                }
                return true;
@@ -662,6 +670,8 @@ ARDOUR_UI::shuttle_box_button_release (GdkEventButton* ev)
                if (session->transport_rolling()) {
                        shuttle_fract = SHUTTLE_FRACT_SPEED1;
                        session->request_transport_speed (1.0);
+                       stop_button.set_active (false);
+                       roll_button.set_active (true);
                } else {
                        shuttle_fract = 0;
                }
@@ -807,10 +817,10 @@ ARDOUR_UI::set_shuttle_units (ShuttleUnits u)
 {
        switch ((shuttle_units = u)) {
        case Percentage:
-               static_cast<Label*>(shuttle_units_button.get_child())->set_text ("% ");
+               shuttle_units_button.set_label("% ");
                break;
        case Semitones:
-               static_cast<Label*>(shuttle_units_button.get_child())->set_text (_("st"));
+               shuttle_units_button.set_label(_("st"));
                break;
        }
 }