Stop visual artifacts from appearing when using input fields#2381
Stop visual artifacts from appearing when using input fields#2381matthewgapp wants to merge 2 commits intolinebender:masterfrom
Conversation
|
This does indeed seem to solve the issue on macOS. However it breaks stuff (e.g. In addition to #1617 there are also some Of special interest is the note on the piet /// You probably don't want to call this. It is essentially a specialized
/// fill method that can be used in GUI contexts for things like clearing
/// damage regions. It does not have a good cross-platform implementation,
/// and eventually should be deprecated when support is added for blend
/// modes, at which point it will be easier to just use [`fill`] for
/// everything.
The does not have a good cross-platform implementation part suggests that the macOS implementation of Piet's The note also suggests that the alternative solution is to have blend modes so that we could actually use Given that the macOS issue (#2367) is quite severe I will spend a bit more time myself looking into this, however no promises of a solution. So I wanted to give this status report in the meantime. |
|
Also worth noting that because it's not actually the #1593 might be related. |
This PR fills invalid rects with a reset color instead of clearing them to fix #2367 which is is easily reproducible on Mac almost anywhere that uses an input field (I'm on M1 Macbook).
This PR partially reverts #1617 to restore the invalidation painting to use
piet.fillinstead ofpiet.clear.I tracked down the issue by bisecting but I don't know why this fixes the issue or if the invalidation painting should have ever used
clearin the first place. Perhaps there is a bug with theclearmethod.🐛 Bug:

Repro steps in issue
Boredom warning: the GIF below is in like slowmo for some reason.
how tested
Manually, both examples in 2367 appear resolved and the
transparency.rsexample remains unchanged after the fix.