https://bugs.kde.org/show_bug.cgi?id=485053
Bug ID: 485053 Summary: Document.refreshProjection()/.waitForDone() doesn't wait for transform masks to complete Classification: Applications Product: krita Version: 5.2.2 Platform: Homebrew (macOS) OS: macOS Status: REPORTED Severity: normal Priority: NOR Component: Scripting Assignee: krita-bugs-n...@kde.org Reporter: c...@thecodewarrior.dev Target Milestone: --- Created attachment 168159 --> https://bugs.kde.org/attachment.cgi?id=168159&action=edit example repro script SUMMARY When showing/hiding a transform mask or transform masked layer, there is often a significant delay before the mask is fully applied. Until then, a lower quality version is used. From my testing both `Document.refreshProjection()` and `Document.waitForDone()` ignore this and return the moment the low quality is available. If afterward you immediately trigger an export, the exported file will use the low quality version. STEPS TO REPRODUCE 1. Create a medium-sized document 2. Import a much larger image as a new layer 3. Add a transform mask and scale the layer down to fit/fill the canvas 4. Manually hide the transformed layer 5. Programmatically set the transformed layer to visible, call `.refreshProjection()`, and export the document (example script attached) - optionally use `layer.setBlendingMode(layer.blendingMode())` together with `doc.waitForDone()` instead of `.refreshProjection()` OBSERVED RESULT The exported file contains the low-quality "preview" output from the transform mask EXPECTED RESULT Both `.refreshProjection()` and `.waitForDone()` should wait for the transform mask to fully apply, and the resulting exported file should use the full-quality transform mask output. If the 2-3 second delay includes artificial debouncing, that delay should be skipped. SOFTWARE/OS VERSIONS macOS: 13.5.1 (22G90) -- You are receiving this mail because: You are watching all bug changes.