Lua add an Empty/Nil shared-pointer constructor
[ardour.git] / libs / canvas / widget.cc
index 7293badb7ce5a7fb15f4b232c27f9395c690e391..db43a68119800e9d6ae8f1a9fda0b50795eb64ca 100644 (file)
@@ -75,33 +75,34 @@ Widget::queue_resize ()
 void
 Widget::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
 {
-       // std::cerr << "Render widget\n";
+       //std::cerr << "Render widget " << name << " @ " << position() << endl;
 
        if (!_bounding_box) {
                std::cerr << "no bbox\n";
                return;
        }
 
-       Rect self = item_to_window (_bounding_box.get());
-       boost::optional<Rect> r = self.intersection (area);
+       Rect self = item_to_window (_bounding_box);
+       Rect r = self.intersection (area);
 
        if (!r) {
                std::cerr << "no intersection\n";
                return;
        }
 
-       Rect draw = r.get ();
+       Rect draw = r;
        cairo_rectangle_t crect;
        crect.x = draw.x0;
        crect.y = draw.y0;
        crect.height = draw.height();
        crect.width = draw.width();
 
-       // std::cerr << "will draw " << draw << "\n";
+       Duple p = position_offset();
+
        context->save ();
-       context->translate (-draw.x0, -draw.y0);
+       context->translate (p.x, p.y);
        //context->rectangle (draw.x0, draw.y0, draw.width(), draw.height());
-       // context->clip ();
+       //context->clip ();
 
        _widget.render (context->cobj(), &crect);
 
@@ -132,4 +133,3 @@ Widget::compute_bounding_box () const
 
        _bounding_box_dirty = false;
 }
-