diff options
| author | vanntile <valentin.ionita1201@gmail.com> | 2019-08-08 06:51:12 +0000 |
|---|---|---|
| committer | vanntile <valentin.ionita1201@gmail.com> | 2019-08-17 15:33:45 +0000 |
| commit | 046edcd4eb8bd48e1a10c14f0781f93977f78925 (patch) | |
| tree | 32b81da0d58368ebf3cc0363c847f427be432fe3 /src/knot-holder-entity.cpp | |
| parent | Added knot holder entities (diff) | |
| download | inkscape-046edcd4eb8bd48e1a10c14f0781f93977f78925.tar.gz inkscape-046edcd4eb8bd48e1a10c14f0781f93977f78925.zip | |
HatchKnotHolderEntityScale & some fixes
Diffstat (limited to 'src/knot-holder-entity.cpp')
| -rw-r--r-- | src/knot-holder-entity.cpp | 11 |
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 */ |
