<AWT Dev> [9] Review request for 8170386: JLightweightFrame content can miss paint events on Windows

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Dec 1 00:18:20 UTC 2016


On 29.11.16 20:55, Semyon Sadetsky wrote:
>> I doubt how it is possible. If the Paint event was posted from the
>> resize event it will reset the paintPainding to "false" in the
>> WComponentPeer.handleEvent():
>>         switch(id) {
>>             case PaintEvent.PAINT:
>>                 // Got native painting
>>                 paintPending = false;
>>                 // Fallthrough to next statement
>>             case PaintEvent.UPDATE:
>>
>> But since the bug exists I assume that this message wasn't posted and
>> this is the reason why all other UPDATE events are skipped.
> Update is also a PaintEvent.
> Another place that may be affected is endLayout() method which also
> depends on the paintPending flag.

Update is not a paint event, update is an event which posted as a result 
of repaint(), but Paint event is an event which is results of the native 
expose event(usually we have a postPaintEvent() method in peers). Since 
the "paintPending" flag is not reset means that the Paint event is not 
posted(seems that the reason is that we have no native part). And we 
should do this from the WLightweightFramePeer in the same way as we post 
COMPONENT_MOVED/COMPONENT_RESIZED

-- 
Best regards, Sergey.


More information about the awt-dev mailing list