On Sun, 8 May 2022 19:36:33 GMT, Harshitha Onkar <d...@openjdk.java.net> wrote:
>> In Windows, when desktop scaling is 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. > > Harshitha Onkar has updated the pull request incrementally with one > additional commit since the last revision: > > formatting changes Yes, with `WM_DPICHANGED` we faced the problem that Kevin describes: the update method gets called before the transform is updated. Thus it doesn't work. Updating the transform, in its turn, calls `DisplayChangedListener`. It worked. Yet Harshitha's testing showed it wasn't reliable. That's why she went for the third approach, which proved to work reliably. However, I haven't tested the latest version myself. ------------- PR: https://git.openjdk.java.net/jdk/pull/8441