summaryrefslogtreecommitdiffstats
path: root/src/object/sp-item.cpp
diff options
context:
space:
mode:
authorThomas Holder <thomas@thomas-holder.de>2019-07-27 14:40:29 +0000
committerThomas Holder <thomas@thomas-holder.de>2019-07-27 14:40:29 +0000
commit63203fb881bfce667a14b2bbb3ec2ee40a9adf77 (patch)
tree86f322f2330dd9bd2f6719ffd7fd828bc67e4356 /src/object/sp-item.cpp
parentCrashfix for connectors avoid selected items (diff)
downloadinkscape-63203fb881bfce667a14b2bbb3ec2ee40a9adf77.tar.gz
inkscape-63203fb881bfce667a14b2bbb3ec2ee40a9adf77.zip
Make doc2dt a document property
Closes #340
Diffstat (limited to 'src/object/sp-item.cpp')
-rw-r--r--src/object/sp-item.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/object/sp-item.cpp b/src/object/sp-item.cpp
index 98ce76f2e..dfc482267 100644
--- a/src/object/sp-item.cpp
+++ b/src/object/sp-item.cpp
@@ -502,9 +502,7 @@ void SPItem::set(SPAttributeEnum key, gchar const* value) {
case SP_ATTR_TRANSFORM_CENTER_Y:
if (value) {
item->transform_center_y = g_strtod(value, nullptr);
- if (SP_ACTIVE_DESKTOP) {
- item->transform_center_y *= -SP_ACTIVE_DESKTOP->yaxisdir();
- }
+ item->transform_center_y *= -document->yaxisdir();
} else {
item->transform_center_y = 0;
}
@@ -745,9 +743,7 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X
repr->setAttribute ("inkscape:transform-center-x", nullptr);
if (item->transform_center_y != 0) {
auto y = item->transform_center_y;
- if (SP_ACTIVE_DESKTOP) {
- y *= -SP_ACTIVE_DESKTOP->yaxisdir();
- }
+ y *= -document->yaxisdir();
sp_repr_set_svg_double (repr, "inkscape:transform-center-y", y);
} else
repr->setAttribute ("inkscape:transform-center-y", nullptr);
@@ -918,8 +914,8 @@ Geom::OptRect SPItem::desktopGeometricBounds() const
Geom::OptRect SPItem::desktopVisualBounds() const
{
Geom::OptRect ret = documentVisualBounds();
- if (ret && SP_ACTIVE_DESKTOP) {
- *ret *= SP_ACTIVE_DESKTOP->doc2dt();
+ if (ret) {
+ *ret *= document->doc2dt();
}
return ret;
}
@@ -1590,10 +1586,7 @@ Geom::Affine SPItem::i2doc_affine() const
Geom::Affine SPItem::i2dt_affine() const
{
Geom::Affine ret(i2doc_affine());
- SPDesktop const *desktop = SP_ACTIVE_DESKTOP;
- if ( desktop ) {
- ret *= desktop->doc2dt();
- }
+ ret *= document->doc2dt();
return ret;
}
@@ -1603,9 +1596,8 @@ void SPItem::set_i2d_affine(Geom::Affine const &i2dt)
Geom::Affine dt2p; /* desktop to item parent transform */
if (parent) {
dt2p = static_cast<SPItem *>(parent)->i2dt_affine().inverse();
- } else if (SP_ACTIVE_DESKTOP) {
- SPDesktop *dt = SP_ACTIVE_DESKTOP;
- dt2p = dt->dt2doc();
+ } else {
+ dt2p = document->dt2doc();
}
Geom::Affine const i2p( i2dt * dt2p );