Bug 510363

Summary: Bezier Curve Tool: "Autosmooth curve" setting doesn't work when setting up curve only using touch taps
Product: [Applications] krita Reporter: Door1 <a.pond105>
Component: ToolsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: dra.w.p.il.e+bugskde
Priority: NOR Keywords: triaged
Version First Reported In: 5.2.13   
Target Milestone: ---   
Platform: Android   
OS: Android 14.x   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Comparison of the Bezier Curve Autosmooth with mouse clicks vs touch taps

Description Door1 2025-10-07 21:29:25 UTC
Created attachment 185587 [details]
Comparison of the Bezier Curve Autosmooth with mouse clicks vs touch taps

SUMMARY

See the attached image to better visualize how this bug looks.


STEPS TO REPRODUCE
1. Select the Bezier Curve Tool
2. In the Tool Options docker, enable "Autosmooth curve"
3. Using your finger, tap on the canvas a few times to setup your curve. (Use ONLY taps. Do not drag with your finger.)

OBSERVED RESULT
The curve is made of straight lines.

EXPECTED RESULT
The curve gets smoothed/curved out, like it would happen if you were using only mouse clicks

SOFTWARE/OS VERSIONS
Android 14
arm64
Krita 5.2.13


ADDITIONAL INFORMATION
I'm not a programmer, but if I were to guess, I'm guessing it's because there's no hovering involved when tapping with the finger.

Would the solution be to create an artificial hover event when tapping the canvas? This is what fixed the transform tool to make it work with touch, ( https://invent.kde.org/graphics/krita/-/commit/61001e3281252522cbc4bc93480438ccb45d4394 ) 

So I wonder if a similar fix would work here.
Comment 1 Dmitry Kazakov 2025-10-16 08:14:23 UTC
Git commit 85b8f3a2977b9c15b101e1bf3245df1e2b49c6ec by Dmitry Kazakov, on behalf of Carsten Hartenfels.
Committed on 16/10/2025 at 08:14.
Pushed by dkazakov into branch 'master'.

Make curve autosmooth work with touch drawing

Another case where the tool expects to receive a move event before a
press event to update its internal state.

M  +13   -1    libs/basicflakes/tools/KoCreatePathTool.cpp
M  +1    -0    libs/basicflakes/tools/KoCreatePathTool.h

https://invent.kde.org/graphics/krita/-/commit/85b8f3a2977b9c15b101e1bf3245df1e2b49c6ec
Comment 2 Dmitry Kazakov 2025-10-16 08:14:43 UTC
Git commit 1e0120ed169b3ed8c515d827e0e49fde38e55666 by Dmitry Kazakov.
Committed on 16/10/2025 at 08:14.
Pushed by dkazakov into branch 'krita/5.2'.

Make curve autosmooth work with touch drawing

Another case where the tool expects to receive a move event before a
press event to update its internal state.


(cherry picked from commit 85b8f3a2977b9c15b101e1bf3245df1e2b49c6ec)

Co-authored-by: Carsten Hartenfels <carsten.hartenfels@pm.me>

M  +13   -1    libs/basicflakes/tools/KoCreatePathTool.cpp
M  +1    -0    libs/basicflakes/tools/KoCreatePathTool.h

https://invent.kde.org/graphics/krita/-/commit/1e0120ed169b3ed8c515d827e0e49fde38e55666