summaryrefslogtreecommitdiffstats
path: root/src/knot-holder-entity.cpp
diff options
context:
space:
mode:
authorvanntile <valentin.ionita1201@gmail.com>2019-08-08 06:51:12 +0000
committervanntile <valentin.ionita1201@gmail.com>2019-08-17 15:33:45 +0000
commit046edcd4eb8bd48e1a10c14f0781f93977f78925 (patch)
tree32b81da0d58368ebf3cc0363c847f427be432fe3 /src/knot-holder-entity.cpp
parentAdded knot holder entities (diff)
downloadinkscape-046edcd4eb8bd48e1a10c14f0781f93977f78925.tar.gz
inkscape-046edcd4eb8bd48e1a10c14f0781f93977f78925.zip
HatchKnotHolderEntityScale & some fixes
Diffstat (limited to 'src/knot-holder-entity.cpp')
-rw-r--r--src/knot-holder-entity.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp
index afa51a9ad..36d4053ef 100644
--- a/src/knot-holder-entity.cpp
+++ b/src/knot-holder-entity.cpp
@@ -352,8 +352,17 @@ void HatchKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point cons
Geom::Point d = p_snapped * transform_inverse;
Geom::Point d_origin = origin * transform_inverse;
Geom::Point origin_dt;
+ gdouble hatch_pitch = hatch->pitch();
+ if (state & GDK_CONTROL_MASK) {
+ // if ctrl is pressed: use 1:1 scaling
+ d = d_origin * (d.length() / d_origin.length());
+ }
+
+ Geom::Affine scale = Geom::Translate(-origin_dt) * Geom::Scale(d.x() / hatch_pitch, d.y() / hatch_pitch) *
+ Geom::Translate(origin_dt) * transform;
- // TODO ???
+ item->adjust_hatch(scale, true, _fill ? TRANSFORM_FILL : TRANSFORM_STROKE);
+ item->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
}
/* Filter manipulation */