summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-10-24 21:40:05 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-10-24 21:40:05 +0000
commit30f930a566eee5d53e0cb160519a697634c64ae9 (patch)
tree294d329582edd08ffc4e0fea3a26a05ba08c0e22 /src
parentFix gradient/mesh handles after object with gradient/mesh cloned. (diff)
downloadinkscape-30f930a566eee5d53e0cb160519a697634c64ae9.tar.gz
inkscape-30f930a566eee5d53e0cb160519a697634c64ae9.zip
Allow select text elements by bounding box
Diffstat (limited to 'src')
-rw-r--r--src/display/drawing-group.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/display/drawing-group.cpp b/src/display/drawing-group.cpp
index e2fb26581..cd669c6f1 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<DrawingText *>(&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;