RFR: JDK-8015739: Background of JInternalFrame is located out of JInternalFrame [v2]

Stanimir Stamenkov duke at openjdk.org
Wed Sep 21 18:05:23 UTC 2022


On Tue, 20 Sep 2022 00:01:27 GMT, Harshitha Onkar <honkar at openjdk.org> wrote:

>> JInternalFrame background color seems to overflow into the border region. This issue is more prominently seen on Windows - Metal LAF (with fractional scaling, as shown below). The primary reason is border scaling issue as observed in  - [JDK-8279614](https://bugs.openjdk.org/browse/JDK-8279614) & [JDK-8282958](https://bugs.openjdk.org/browse/JDK-8282958)
>> 
>> The fix involves a similar approach as described here https://github.com/openjdk/jdk/pull/7449#issuecomment-1068218648. The test checks the midpoint and corners of borders to check if the internal frame's background color is located out of JInternalFrame.
>> 
>> ![image](https://user-images.githubusercontent.com/95945681/190233555-a7e00f2c-9003-4c11-84fb-207957838c2f.png)
>
> Harshitha Onkar has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
> 
>  - Merge branch 'master' into JIFBorder_8015739
>  - added test summary
>  - updated test case
>  - Added test case, minor position changes to shadow lines
>  - expanded imports
>  - JIF Metal Border Scaling - Initial changes

src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java line 313:

> 311: 
> 312:             // border and corner scaling
> 313:             corner = (int) Math.round(corner * at.getScaleX());

I'm likely missing something from the big picture but wouldn't this accumulate on every `paintBorder()` invocation (into a static field)?

-------------

PR: https://git.openjdk.org/jdk/pull/10274



More information about the client-libs-dev mailing list