Bug 488472 - Recorder stops freehand selection
Summary: Recorder stops freehand selection
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Freehand (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: Debian testing Linux
: NOR minor
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-13 22:23 UTC by rabatel.crgi
Modified: 2024-11-08 10:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rabatel.crgi 2024-06-13 22:23:39 UTC
SUMMARY

With the recorder in the background everytime it makes its save the free hand tool finishes it's selection even if the clic is still pressed 


STEPS TO REPRODUCE
1. draw selection for more than the recorder interval
2. get stopped in your tracks
3. wonder why your selections keep closing without your input

OBSERVED RESULT
the selection closes before user input

EXPECTED RESULT
selection closing on user input


Krita

 Version: 5.3.0-prealpha (git bee98c4)
 Hidpi: true

Qt

  Version (compiled): 5.15.7
  Version (loaded): 5.15.7

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.7.12-amd64
  Pretty Productname: Debian GNU/Linux trixie/sid
  Product Type: debian
  Product Version: unknown
  Desktop: XFCE
  Appimage build: Yes

Locale

  Languages: C
  C locale: C.UTF-8
  QLocale current: en
  QLocale system: en
  QTextCodec for locale: UTF-8

OpenGL Info
 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "NVIDIA GeForce GTX 1070/PCIe/SSE2" 
  Driver version:  "4.6.0 NVIDIA 535.161.08" 
  Shading language:  "4.60 NVIDIA" 
  Requested format:  QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:  QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  GL version: 4.6 
  Supports deprecated functions false 
  Is OpenGL ES: false 
  supportsBufferMapping: true 
  supportsBufferInvalidation: true 
  forceDisableTextureBuffers: false
Comment 1 David REVOY 2024-06-13 23:00:09 UTC
Hi, Yes, I can reproduce. 
It sounds like a duplicate of https://bugs.kde.org/show_bug.cgi?id=477715 
Thank you for reporting.
Comment 2 David REVOY 2024-06-13 23:25:19 UTC
Possible relevant merge request: https://invent.kde.org/graphics/krita/-/merge_requests/2164/
(an MR by Aqaao, and pointed on the channel by Freyalupen)
Comment 3 Dmitry Kazakov 2024-11-08 10:48:10 UTC
Git commit c99b19450ccbe79356597afe1fe4213a9791378d by Dmitry Kazakov, on behalf of Firstname Aqaao.
Committed on 08/11/2024 at 10:47.
Pushed by dkazakov into branch 'krita/5.2'.

Fixed: some tools is interrupted by recorder.

Related threads:
[bug#477715](https://bugs.kde.org/show_bug.cgi?id=477715)
[bug#484783](https://bugs.kde.org/show_bug.cgi?id=484783)

According to my tests, half of tools are affected.

This MR expanded tool blacklist and divide tools into two categories.

One is done in one step(like Line Tool), just disable recorder when such tools are activated(left button pressed on canvas).

One is done in multiple steps(like FreeHand Selection Tool), we need disable recorder in such tools all lifetime.
Related: bug 477715, bug 484783

M  +2    -0    libs/ui/canvas/kis_tool_proxy.cpp
M  +4    -1    libs/ui/canvas/kis_tool_proxy.h
M  +55   -8    plugins/dockers/recorder/recorder_writer.cpp
M  +1    -0    plugins/dockers/recorder/recorder_writer.h

https://invent.kde.org/graphics/krita/-/commit/c99b19450ccbe79356597afe1fe4213a9791378d