summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Holder <thomas@thomas-holder.de>2018-10-12 08:22:54 +0000
committerThomas Holder <thomas@thomas-holder.de>2018-10-12 08:22:54 +0000
commit6ea480ced147f2c8ce55aa7f729fe8ad49f78118 (patch)
treedeba9076a28103c766b4367766a910cf3462cf27
parentHopefully last fix for e4c44f8b4674b88c0174270f27d61db808f66bc6 (diff)
downloadinkscape-6ea480ced147f2c8ce55aa7f729fe8ad49f78118.tar.gz
inkscape-6ea480ced147f2c8ce55aa7f729fe8ad49f78118.zip
fix masked object's selection bbox
-rw-r--r--src/object/sp-item.cpp4
-rw-r--r--src/object/sp-mask.cpp2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/object/sp-item.cpp b/src/object/sp-item.cpp
index 4c0538928..e384c7dc6 100644
--- a/src/object/sp-item.cpp
+++ b/src/object/sp-item.cpp
@@ -861,6 +861,10 @@ Geom::OptRect SPItem::visualBounds(Geom::Affine const &transform) const
ownerItem->bbox_valid = FALSE; // LP Bug 1349018
bbox.intersectWith(clip_ref->getObject()->geometricBounds(transform));
}
+ if (mask_ref->getObject()) {
+ bbox_valid = false; // LP Bug 1349018
+ bbox.intersectWith(mask_ref->getObject()->visualBounds(transform));
+ }
return bbox;
}
diff --git a/src/object/sp-mask.cpp b/src/object/sp-mask.cpp
index 217e8383c..08f315cc2 100644
--- a/src/object/sp-mask.cpp
+++ b/src/object/sp-mask.cpp
@@ -126,7 +126,7 @@ SPMask::visualBounds(Geom::Affine const &transform) {
Geom::OptRect bbox;
for (auto& i: children) {
if (SP_IS_ITEM(&i)) {
- Geom::OptRect tmp = SP_ITEM(&i)->visualBounds(transform);
+ Geom::OptRect tmp = SP_ITEM(&i)->visualBounds(SP_ITEM(&i)->transform * transform);
bbox.unionWith(tmp);
}
}