On Sun, 13 Dec 2020 23:56:12 GMT, Anton Litvinov <alitvi...@openjdk.org> wrote:

>> Hello colleagues,
>> 
>> Could you please review the fix for the bug specific to Linux OS and Solaris 
>> OS, which consists in the fact that, if Swing components are changed through 
>> standard public API of these components, while the frame containing these 
>> components is in "Frame.ICONIFIED" state or in other words minimized, then, 
>> when the frame becomes deiconified the UI of the Swing components does not 
>> reflect those changes.
>> 
>> ROOT CAUSE OF THE BUG:
>> "javax.swing.RepaintManager.addDirtyRegion0(Container, int, int, int, int)" 
>> by design prevents updating regions of containers, when the containers are 
>> inside a frame with "Frame.ICONIFIED" state. And at the same time Linux OS 
>> specific JDK code does not initiate repaint of the frame, when the frame's 
>> peer is notified about change of state from "Frame.ICONIFIED" to other 
>> state. More details are available in the bug record.
>> 
>> THE FIX:
>> The fix adds code to the method 
>> "sun.awt.X11.XFramePeer.handlePropertyNotify(XEvent)" which calls 
>> "repaint()" for instance of "XFramePeer", if its state changed from 
>> "Frame.ICONIFIED". The fix repeats the approach already existing in macOS 
>> specific code, which is in the method 
>> "sun.lwawt.LWWindowPeer.notifyIconify(boolean)".
>> 
>> Thank you,
>> Anton
>
> Anton Litvinov has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Removal of required platform restriction from the test

Marked as reviewed by serb (Reviewer).

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

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

Reply via email to