summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-07-31 17:34:59 +0000
committerjabiertxof <info@marker.es>2016-07-31 17:34:59 +0000
commit372309acc2c71ec2153f58f8ee6917ecf4d5d341 (patch)
tree5225f4f17c0f324eb7acce0ced25d873c301dc83 /src
parentRotate the text label on down position 180 degree (diff)
downloadinkscape-372309acc2c71ec2153f58f8ee6917ecf4d5d341.tar.gz
inkscape-372309acc2c71ec2153f58f8ee6917ecf4d5d341.zip
Fix label positioning
(bzr r15017.1.20)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-measure-line.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/live_effects/lpe-measure-line.cpp b/src/live_effects/lpe-measure-line.cpp
index b4ad45092..97da89fd1 100644
--- a/src/live_effects/lpe-measure-line.cpp
+++ b/src/live_effects/lpe-measure-line.cpp
@@ -199,17 +199,6 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl
Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc();
Inkscape::XML::Node *rtext = NULL;
double doc_w = desktop->getDocument()->getRoot()->width.value;
-// Glib::ustring doc_unit = unit_table.getUnit(desktop->getDocument()->getRoot()->width.unit)->abbr;
-// if (doc_unit == "") {
-// doc_unit = "px";
-// } else if (doc_unit == "%" && desktop->getDocument()->getRoot()->viewBox_set) {
-// doc_w_unit = "px";
-// doc_w = desktop->getDocument()->getRoot()->viewBox.width();
-// }
-// doc_unit = Inkscape::Util::unit_table.getUnit(desktop->doc()->getRoot()->height.unit)->abbr;
-// if (doc_unit.empty()) {
-// doc_unit = "px";
-// }
Geom::Scale scale = desktop->getDocument()->getDocumentScale();
SPNamedView *nv = desktop->getNamedView();
Glib::ustring display_unit = nv->display_units->abbr;
@@ -251,11 +240,13 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl
gchar * transform;
if (rotate_anotation) {
Geom::Affine affine = Geom::Affine(Geom::Translate(pos).inverse());
- if (std::abs(angle) > rad_from_deg(90) && std::abs(angle) < rad_from_deg(270)) {
+ angle = std::fmod(angle, 2*M_PI);
+ if (angle < 0) angle += 2*M_PI;
+ if (angle >= rad_from_deg(90) && angle < rad_from_deg(270)) {
angle = std::fmod(angle + rad_from_deg(180), 2*M_PI);
if (angle < 0) angle += 2*M_PI;
}
- affine *= Geom::Rotate(std::abs(angle));
+ affine *= Geom::Rotate(angle);
affine *= Geom::Translate(pos);
transform = sp_svg_transform_write(affine);
} else {
@@ -458,7 +449,9 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem)
fontsize *= desktop->doc()->getRoot()->c2p.inverse().expansionX();
Geom::Coord angle_cross = std::fmod(angle + rad_from_deg(90), 2*M_PI);
if (angle_cross < 0) angle_cross += 2*M_PI;
- if (std::abs(angle) > rad_from_deg(90) && std::abs(angle) < rad_from_deg(270)) {
+ angle = std::fmod(angle, 2*M_PI);
+ if (angle < 0) angle += 2*M_PI;
+ if (angle >= rad_from_deg(90) && angle < rad_from_deg(270)) {
pos = pos - Point::polar(angle_cross, (position - text_distance) + fontsize/2.0);
} else {
pos = pos - Point::polar(angle_cross, (position + text_distance) - fontsize/2.0);