On Mon, 22 Apr 2024 07:08:00 GMT, Tejesh R <[email protected]> wrote:
>> Getting a theme for particular dpi failed in windows L&F during print test.
>> Before [JDK-8294427](https://bugs.openjdk.org/browse/JDK-8294427) fix, theme
>> was independent of DPI. After the fix
>> (https://github.com/openjdk/jdk/commit/a63afa4aa62863d1a199a0fb7d2f56ff8fcd04fd)
>> getting a theme in Windows L&F became dependent on DPI. Now it works fine
>> in paint to a frame or window but for printing the DPI is computed with
>> scaling factor which might not be w.r.t set of connected monitors and hence
>> error is returned according to [this from windows
>> document](https://learn.microsoft.com/en-us/windows/win32/api/uxtheme/nf-uxtheme-openthemedatafordpi).
>>
>> The suggested fix is to handle printer cases with default dpi since in error
>> condition 0 is returned with `openThemeImpl(widget, dpi)`. The fix seems to
>> be working fine without causing any regression (Tested in CI systems and
>> also the affected tests).
>
> Tejesh R has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Moved failure handling inside openThemeImpl method
Changes requested by aivanov (Reviewer).
src/java.desktop/windows/classes/sun/awt/windows/ThemeReader.java line 117:
> 115: if (theme == null || theme == 0) {
> 116: theme = openTheme(widget, defaultDPI);
> 117: }
`theme` can't be `null` because `openTheme` returns `long`. Perhaps, the
declaration should be changed to
long theme;
This is still incorrect. If `i > 0`, there's a prerequisite to calling
`openTheme`. Likely, you need another helper method.
-------------
PR Review: https://git.openjdk.org/jdk/pull/18706#pullrequestreview-2015052771
PR Review Comment: https://git.openjdk.org/jdk/pull/18706#discussion_r1574925429