RFR: JDK-8255439: System Tray icons get corrupted when windows scaling changes

Sergey Bylokhov serb at openjdk.java.net
Fri Apr 29 00:39:53 UTC 2022


On Thu, 28 Apr 2022 02:26:28 GMT, Harshitha Onkar <duke at openjdk.java.net> wrote:

> In Windows when desktop scaling was changed the tray icons was distorted/blurred a bit each time scaling changes.
> 
> With the proposed fix, the tray icon scales according to on-the-fly DPI scale settings. A test case has been added which adds a MRI icon to system tray, to observe the icon scaling when DPI is changed. Since the scale cannot be programmatically changed (for dynamic on-the-fly scale changes), I have used a manual test case to test this scenario.
> 
> When DPI changes usually two messages are sent by windows -
> 
> - [WM_DPICHANGED](https://docs.microsoft.com/en-us/windows/win32/hidpi/wm-dpichanged)
> - [WMPOSCHANGING](https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-windowposchanging)
> 
> I'm triggering an update on tray icons on receiving WMPOSCHANGING msg through the Tray icon's Window Procedure. Triggering an update on WM_DPICHANGED was still causing the icons to be distorted, hence WMPOSCHANGING is being used as the message to trigger the update.

Did you have a chance to check why the WM_DPICHANGED does not work, any specific cases? It is used by checking the scale change for windows in AWT, and no issues were reported for that as far as I know.

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

PR: https://git.openjdk.java.net/jdk/pull/8441



More information about the client-libs-dev mailing list