On 11/29/2016 6:24 PM, Sergey Bylokhov wrote:
On 29.11.16 17:35, Semyon Sadetsky wrote:
Paint event may be missed by the JLightweightFrame on Windows platform
when it is resized consequently to the same size because the latter sets
paintPainding flag .

From what place the Paint will be posted after the call to setBounds()? In case of normal native components this event will be posted from native code after the size of the native component will be changed. But how it works in case of JLightweightFrame? At least COMPONENT_MOVED/COMPONENT_RESIZED are posted manually from the reshape() method, probably we should do the same for the PAIN event as well? In this case our optimization which coalesce PAINT events will work and the sequence of setBounds() will produce only one repaint() action.
Paint event is posted on resize and handled as usual in case of JLightweightFrame, but the paint handler does not initiate the real paint when paintPainding is true for optimization purpose because it detects that the consequent paint event has been posted already.

The fix overrides WComponentPeer#setBounds() method in
WLightweightFramePeer to clears paintPainding flag.


Reply via email to