[krita] [Bug 485053] New: Document.refreshProjection()/.waitForDone() doesn't wait for transform masks to complete

bugzilla_noreply at kde.org bugzilla_noreply at kde.org
Fri Apr 5 00:29:04 BST 2024


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-null at kde.org
          Reporter: code at 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.



More information about the kde-mac mailing list