From cf293d05934f3f8d664127967dad20877d8f9594 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 8 Jan 2014 10:42:14 -0500 Subject: [PATCH] tweak rectangle bounding box computation --- libs/canvas/rectangle.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libs/canvas/rectangle.cc b/libs/canvas/rectangle.cc index 7b7f67c3c6..06a41e074c 100644 --- a/libs/canvas/rectangle.cc +++ b/libs/canvas/rectangle.cc @@ -119,11 +119,19 @@ Rectangle::render (Rect const & area, Cairo::RefPtr context) con void Rectangle::compute_bounding_box () const { - /* boundary is drawn inside our coordinates but expanded by 0.5 to get - * single-pixel drawing correct. - */ - Rect r = _rect.fix(); - _bounding_box = boost::optional (r.expand (_outline_width/2.0)); + if (!_rect.empty()) { + Rect r = _rect.fix (); + + /* our outlines are always inside our coordinates, but we have + * to ensure that our bounding box fully *contains* the + * rectangle + * + * XXX: or something like that, waffle. + * + */ + _bounding_box = r.expand (1.0); + } + _bounding_box_dirty = false; }