From 646ed5b47b0fee962cbdc14fa23a1f4d5566d724 Mon Sep 17 00:00:00 2001 From: Thomas Holder Date: Wed, 17 Apr 2019 23:15:49 +0200 Subject: fix inbox#380 Rotation center flipped with y-axis --- src/object/sp-item.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/object/sp-item.cpp') diff --git a/src/object/sp-item.cpp b/src/object/sp-item.cpp index cba70f126..5adecf358 100644 --- a/src/object/sp-item.cpp +++ b/src/object/sp-item.cpp @@ -502,6 +502,9 @@ 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(); + } } else { item->transform_center_y = 0; } @@ -740,9 +743,13 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X sp_repr_set_svg_double (repr, "inkscape:transform-center-x", item->transform_center_x); else repr->setAttribute ("inkscape:transform-center-x", nullptr); - if (item->transform_center_y != 0) - sp_repr_set_svg_double (repr, "inkscape:transform-center-y", item->transform_center_y); - else + if (item->transform_center_y != 0) { + auto y = item->transform_center_y; + if (SP_ACTIVE_DESKTOP) { + y *= -SP_ACTIVE_DESKTOP->yaxisdir(); + } + sp_repr_set_svg_double (repr, "inkscape:transform-center-y", y); + } else repr->setAttribute ("inkscape:transform-center-y", nullptr); } -- cgit v1.2.3