RFR: JDK-8255439: System Tray icons get corrupted when windows scaling changes
Harshitha Onkar
duke at openjdk.java.net
Fri Apr 29 01:43:37 UTC 2022
On Fri, 29 Apr 2022 00:36:15 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:
> 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.
When DPI gets changed, many events are generated one after the other. By setting delays at various places in code I observed that, the timing of triggering tray icon update could have effects on how it is rendered.
When DPI is changed, along with `WM_DPICHANGED` msg the tray icon window's procedure receives `WMPOSCHANGING` and if we trigger a tray icon update before this, the icon gets distorted. I believe the cause for distortion might be - adding an icon to the system tray while it is still changing its size and position (WMPOSCHANGING) due to DPI changes.
By triggering the update after `WMPOSCHANGING`, the tray icon gets added when all the updates to the System Tray are completed.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8441
More information about the client-libs-dev
mailing list