diff options
-rw-r--r-- | libs/canvas/rectangle.cc | 7 |
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) { |