push2: correct knob origin translation for drawing
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 25 Sep 2016 23:28:32 +0000 (18:28 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 27 Sep 2016 19:59:32 +0000 (14:59 -0500)
libs/surfaces/push2/knob.cc

index 270aca913b4136cca61b0d947458fbbf8f5d9cbf..77fb58f00d91f18a00449c5d85663c09eccec96f 100644 (file)
@@ -111,7 +111,11 @@ Push2Knob::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) con
        float value_x = cos (value_angle);
        float value_y = sin (value_angle);
 
-       context->translate (_position.x, _position.y);  //after this, everything is based on the center of the knob
+       /* translate so that all coordinates are based on the center of the
+        * knob (which is also its position()
+        */
+       Duple origin = item_to_window (Duple (0, 0));
+       context->translate (origin.x, origin.y);
        context->begin_new_path ();
 
        float center_radius = 0.48*scale;
@@ -134,7 +138,6 @@ Push2Knob::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) con
                context->arc (0, 0, progress_radius, start_angle, end_angle);
                context->stroke ();
 
-
                double red_start, green_start, blue_start, astart;
                double red_end, green_end, blue_end, aend;
 
@@ -318,6 +321,7 @@ Push2Knob::controllable_changed ()
 
                case ARDOUR::GainAutomation:
                case ARDOUR::BusSendLevel:
+               case ARDOUR::TrimAutomation:
                        set_gain_text (_val);
                        break;