RFR: JDK-8303950: [macos]Translucent Windows Flicker on Repaint [v4]
Damon Nguyen
dnguyen at openjdk.org
Fri Apr 7 17:06:47 UTC 2023
On Tue, 21 Mar 2023 21:07:42 GMT, Jeremy <duke at openjdk.org> wrote:
>> I'm confident about the new test case for this ticket, but the resolution is more invasive than I'd like. (It works, though.)
>>
>> In short:
>> This introduces a new RenderingHint (in SunHints) to bypass the call in Window to `gg2d.fillRect(0, 0, getWidth(), getHeight());`
>>
>> I left more detailed notes here about the proposed resolution:
>> https://github.com/openjdk/jdk/commit/1991fdac5dbf76ddaf73cc78a9f7c38370c9674c
>>
>> I'm open to suggestions if anyone has a more elegant proposal to prevent the monitor from refreshing too soon?
>
> Jeremy has updated the pull request incrementally with one additional commit since the last revision:
>
> 8303950: adding unit test for legacy window behavior
>
> This test passes in the current JDK. The test criteria don't really reflect a rational expected behavior; they just reflect the current status quo.
>
> This currently fails in this JDK-8303950 branch (using the new proposed AWTPaintManager), which indicates we've changed behavior.
>
> In this case it's "window 4" that's failing. We used to get a mostly blue background, and now we're getting a background that's mostly red with a little blue. This isn't necessarily a bad thing; this failure is just documenting a change.
src/java.desktop/share/classes/java/awt/Window.java line 3953:
> 3951: if (gg instanceof Graphics2D) {
> 3952: gg.setColor(getBackground());
> 3953: ((Graphics2D) gg).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC));
Why was the import for SunHints added if the only edit to this file was adding a space?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/12993#discussion_r1160837035
More information about the client-libs-dev
mailing list