fix transition in and out of delta clock mode
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 18 Nov 2011 17:06:11 +0000 (17:06 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 18 Nov 2011 17:06:11 +0000 (17:06 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@10679 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour_ui_options.cc
gtk2_ardour/audio_clock.cc
gtk2_ardour/audio_clock.h

index 94bcafbc162facec2637a77516d7b916ea57c69d..7fab6e56913165d586dbd90af1ea26f12444b8bc 100644 (file)
@@ -373,9 +373,25 @@ ARDOUR_UI::parameter_changed (std::string p)
        } else if (p == "show-track-meters") {
                editor->toggle_meter_updating();
        } else if (p == "primary-clock-delta-edit-cursor") {
-               primary_clock->set_is_duration (Config->get_primary_clock_delta_edit_cursor());
+               if (Config->get_primary_clock_delta_edit_cursor()) {
+                       primary_clock->set_is_duration (true);
+                       primary_clock->set_editable (false);
+                       primary_clock->set_widget_name ("transport delta");
+               } else {
+                       primary_clock->set_is_duration (false);
+                       primary_clock->set_editable (true);
+                       primary_clock->set_widget_name ("transport");
+               }
        } else if (p == "secondary-clock-delta-edit-cursor") {
-               secondary_clock->set_is_duration (Config->get_secondary_clock_delta_edit_cursor());
+               if (Config->get_secondary_clock_delta_edit_cursor()) {
+                       secondary_clock->set_is_duration (true);
+                       secondary_clock->set_editable (false);
+                       secondary_clock->set_widget_name ("secondary delta");
+               } else {
+                       secondary_clock->set_is_duration (false);
+                       secondary_clock->set_editable (true);
+                       secondary_clock->set_widget_name ("secondary");
+               }
        }
 }
 
index 0a4ade4ad5dca870ea9f00568352410069a84622..166a76efcea142b7f5d85d7f2493fc0a5804597d 100644 (file)
@@ -1654,6 +1654,12 @@ AudioClock::on_style_changed (const Glib::RefPtr<Gtk::Style>& old_style)
        set_colors ();
 }
 
+void
+AudioClock::set_editable (bool yn)
+{
+       editable = yn;
+}
+
 void
 AudioClock::set_is_duration (bool yn)
 {
index 03c5e802d2cf91535f77ecbb278ce96e3def57c3..912d0b68fe4b32fa05e46fea6964beb9bfbe568c 100644 (file)
@@ -58,6 +58,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
        bool off() const { return _off; }
        void set_widget_name (const std::string& name);
        void set_active_state (Gtkmm2ext::ActiveState s);
+       void set_editable (bool yn);
 
        void focus ();
 
@@ -112,6 +113,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
        int info_height;
        int upper_height;
        double mode_based_info_ratio;
+
        static const double info_font_scale_factor;
        static const double separator_height;
        static const double x_leading_padding;