summaryrefslogtreecommitdiffstats
path: root/src/object/box3d.cpp
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2018-09-12 16:02:57 +0000
committerMarc Jeanmougin <marc@jeanmougin.fr>2018-09-12 16:02:57 +0000
commit197d4156fb11ec3e608d04e656a7b9e841c341d8 (patch)
tree148f0e5a97cac35451983625eb028f94fc4556d0 /src/object/box3d.cpp
parentMore caching in prefs (diff)
parentAllow adding new properties (diff)
downloadinkscape-197d4156fb11ec3e608d04e656a7b9e841c341d8.tar.gz
inkscape-197d4156fb11ec3e608d04e656a7b9e841c341d8.zip
Merge branch 'master' of gitlab.com:inkscape/inkscape
Diffstat (limited to 'src/object/box3d.cpp')
-rw-r--r--src/object/box3d.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/object/box3d.cpp b/src/object/box3d.cpp
index df95f4f84..7be7c10f7 100644
--- a/src/object/box3d.cpp
+++ b/src/object/box3d.cpp
@@ -149,6 +149,9 @@ void SPBox3D::set(unsigned int key, const gchar* value) {
case SP_ATTR_INKSCAPE_BOX3D_CORNER0:
if (value && strcmp(value, "0 : 0 : 0 : 0")) {
box->orig_corner0 = Proj::Pt3(value);
+ if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
+ box->orig_corner0[Proj::Y] *= -1;
+ }
box->save_corner0 = box->orig_corner0;
box3d_position_set(box);
}
@@ -156,6 +159,9 @@ void SPBox3D::set(unsigned int key, const gchar* value) {
case SP_ATTR_INKSCAPE_BOX3D_CORNER7:
if (value && strcmp(value, "0 : 0 : 0 : 0")) {
box->orig_corner7 = Proj::Pt3(value);
+ if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
+ box->orig_corner7[Proj::Y] *= -1;
+ }
box->save_corner7 = box->orig_corner7;
box3d_position_set(box);
}
@@ -227,8 +233,15 @@ Inkscape::XML::Node* SPBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape::
}
}
- gchar *coordstr0 = box->orig_corner0.coord_string();
- gchar *coordstr7 = box->orig_corner7.coord_string();
+ auto corner0 = box->orig_corner0;
+ auto corner7 = box->orig_corner7;
+ if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
+ corner0[Proj::Y] *= -1;
+ corner7[Proj::Y] *= -1;
+ }
+
+ gchar *coordstr0 = corner0.coord_string();
+ gchar *coordstr7 = corner7.coord_string();
repr->setAttribute("inkscape:corner0", coordstr0);
repr->setAttribute("inkscape:corner7", coordstr7);
g_free(coordstr0);