When rendering a Canvas::Rectangle take its _position into account, even though in general this is always (0,0) within its parent

This commit is contained in:
Paul Davis 2014-06-06 08:32:05 -04:00
parent d7fc573cb8
commit b54a2713a1

View File

@ -51,7 +51,12 @@ Rectangle::Rectangle (Group* parent, Rect const & rect)
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) {