Waiting for canvas redraw stops many other operations
Environment/Versions
- GIMP version: 2.99.8 and all previous versions
- Package: flatpak gimp installer
- Operating System: Kubuntu 20.04
Description of the bug
Many operations are stalled because of waiting for the canvas to redraw itself. This redraw cannot be stopped and should not be running synchronously and blocking all other operations as on a large canvas with many layers, waiting for it to complete can take a significant amount of time. Examples of user operations that are blocked by canvas redraw: resizing image, unified transform. A unified transform can be started, the progress widget will be displayed, but there is no progress indicated for a long period, it may be observed while waiting that the canvas is redrawing. The redraw is superfluous as it will have to redraw again when the transform has completed. It appears that some of the redrawing is taking place on non visible areas of canvas (where the window is only displaying part of the canvas due to zoomed in)
Reproduction
Is the bug reproducible? Always
Reproduction steps:
- Perform any operation that requires a canvas redraw
- Try to perform another operation during the redraw
- Whilst an operation can be started by the user, it will not actually take place until the redraw operation has completed.
…
Expected result: A canvas redraw should stop or take place in a separate thread
Actual result: Lengthy delays waiting for a redraw to be completed.
Additional information
If you have a backtrace for a crash or a warning, paste it here.