Bug 381913 - When making a new path with a tablet stylus, all the inside nodes are symmetric nodes.
Summary: When making a new path with a tablet stylus, all the inside nodes are symmetr...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Layers/Vector (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-02 15:27 UTC by wolthera
Modified: 2018-02-20 10:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wolthera 2017-07-02 15:27:26 UTC
When I make a sharp-corned polygon with the path tool, with my stylus, all the nodes are symmetric nodes, instead of corner nodes, as one would expect.

While I could use the polygon/polyline tool for this, I would expect the path tool to be capable of this as well.

Perhaps some kind of minimum amount of movement check needs to be made before a node is registered as symmetric?
Comment 1 Dmitry Kazakov 2018-02-19 19:43:59 UTC
Git commit 85a58afef071860543c4d755a7745327abb46309 by Dmitry Kazakov.
Committed on 19/02/2018 at 19:42.
Pushed by dkazakov into branch 'kazakov/tool-handles-refactoring'.

Rewritten painting of handles in KoCreatePathTool

Now the handles are painted in a uniform way by a couple of
KisHandlePainterHelper + KoShapeHandlesCollection. KoPathPoint
generates an abstract list of "handles", which are sorted in the
tool and painted in one go. It allows the tool to decide, which
area on screen the handle occupies and issue updateCanvas() calls
accordingly.

M  +211  -113  libs/basicflakes/tools/KoCreatePathTool.cpp
M  +13   -1    libs/basicflakes/tools/KoCreatePathTool.h
M  +42   -56   libs/basicflakes/tools/KoCreatePathTool_p.h
M  +1    -1    libs/basicflakes/tools/KoPencilTool.cpp
M  +1    -0    libs/flake/CMakeLists.txt
M  +29   -9    libs/flake/KoPathPoint.cpp
M  +3    -0    libs/flake/KoPathPoint.h
M  +12   -4    libs/flake/KoShape.cpp
A  +82   -0    libs/flake/KoShapeHandlesCollection.cpp     [License: GPL (v2+)]
A  +46   -0    libs/flake/KoShapeHandlesCollection.h     [License: GPL (v2+)]
M  +0    -4    libs/flake/KoSnapGuide.cpp
M  +12   -2    libs/flake/KoToolBase.cpp
M  +7    -1    libs/flake/KoToolBase.h
M  +1    -1    libs/flake/tools/KoPathTool.cpp
M  +201  -20   libs/global/KisHandlePainterHelper.cpp
M  +92   -11   libs/global/KisHandlePainterHelper.h
M  +94   -0    libs/global/kis_painting_tweaks.cpp
M  +77   -0    libs/global/kis_painting_tweaks.h
M  +2    -2    plugins/flake/artistictextshape/ArtisticTextTool.cpp
M  +6    -6    plugins/tools/defaulttool/connectionTool/ConnectionTool.cpp

https://commits.kde.org/krita/85a58afef071860543c4d755a7745327abb46309
Comment 2 Dmitry Kazakov 2018-02-20 10:29:17 UTC
Git commit 90b57efe929ac83427d3887c0d18dc253b823b3d by Dmitry Kazakov.
Committed on 20/02/2018 at 10:28.
Pushed by dkazakov into branch 'master'.

Add minimal drag distance for creating symmetric nodes in KoCreatePathTool

M  +13   -8    libs/basicflakes/tools/KoCreatePathTool.cpp
M  +2    -0    libs/basicflakes/tools/KoCreatePathTool_p.h

https://commits.kde.org/krita/90b57efe929ac83427d3887c0d18dc253b823b3d