diff --git a/src/display/drawing-group.cpp b/src/display/drawing-group.cpp index e2fb2658113ce4af2d4ea5aeb19f4d8bcbde5405..cd669c6f1e143db129952b8372d329456cd92219 100644 --- a/src/display/drawing-group.cpp +++ b/src/display/drawing-group.cpp @@ -15,6 +15,7 @@ #include "display/drawing-context.h" #include "display/drawing-item.h" #include "display/drawing-surface.h" +#include "display/drawing-text.h" #include "display/drawing.h" #include "style.h" @@ -129,7 +130,15 @@ DrawingGroup::_clipItem(DrawingContext &dc, Geom::IntRect const &area) DrawingItem * DrawingGroup::_pickItem(Geom::Point const &p, double delta, unsigned flags) { + bool outline = _drawing.outline() || _drawing.getOutlineSensitive(); for (auto & i : _children) { + if ((dynamic_cast(&i) != nullptr) && !outline && !(flags & PICK_AS_CLIP) && _drawbox) { + Geom::Rect expanded = *_drawbox; + expanded.expandBy(delta); + if (expanded.contains(p)) { + return this; + } + } DrawingItem *picked = i.pick(p, delta, flags); if (picked) { return _pick_children ? picked : this;