summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/canvas/rectangle.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/canvas/rectangle.cc b/libs/canvas/rectangle.cc
index 57c26874c4..cea5567dcc 100644
--- a/libs/canvas/rectangle.cc
+++ b/libs/canvas/rectangle.cc
@@ -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) {