void
Rectangle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
{
- Rect self = item_to_window (_rect);
+ /* In general, a Rectangle will have a _position of (0,0) within its
+ parent, and its extent is actually defined by _rect. But in the
+ unusual case that _position is set to something other than (0,0),
+ we should take that into account when rendering.
+ */
+ Rect self = item_to_window (_rect.translate (_position));
boost::optional<Rect> r = self.intersection (area);
if (!r) {