<AWT Dev> [8] Review request for 8013189: JMenuItems draw behind TextArea

Anthony Petrov anthony.petrov at oracle.com
Fri May 24 08:50:13 PDT 2013

On 05/24/2013 07:39 PM, Sergey Bylokhov wrote:
> On 24.05.2013 19:19, Anthony Petrov wrote:
>> Hi Sergey,
>> I don't believe so. While LWAWT toolkit uses Swing components
>> internally, these internal components never use a real component from
>> the actual components hierarchy as their parent. Invalidating the
>> internal components can't cause the actual components to be invalidated.
> Ok. thanks.
> Another question is: probably we can override
> AWTTextPane.isValidateRoot() to return true? Does it help?

AWTTextPane extends JScrollPane. The JScrollPane.isValidateRoot() is 
already overridden and returns true. However, the invalidate() method 
takes the isValidateRoot() into account *only* in the 
java.awt.smartInvalidate=true mode which isn't the default (for 
compatibility reasons).

Hence, my fix forces this mode locally for the XTextAreaPeer internal 
implementation only. This doesn't affect compatibility because the 
internal components have never been exposed to user code anyway, and at 
the same time avoids invalidating actual user components, thus 
preventing the bug from appearing.

best regards,

>> --
>> best regards,
>> Anthony
>> On 05/24/2013 07:07 PM, Sergey Bylokhov wrote:
>>> Hi, Anthony.
>>> Is our LWTextAreaPeer has the same problem?
>>> On 24.05.2013 17:44, Anthony Petrov wrote:
>>>> Hello,
>>>> Please review a fix for http://bugs.sun.com/view_bug.do?bug_id=8013189
>>>> at:
>>>> http://cr.openjdk.java.net/~anthony/8-58-textAreaMixing-8013189.0/
>>>> Root cause:
>>>> The TextArea's parent is set as a parent for internal XTextAreaPeer
>>>> components, causing the parent to be invalidated when the internal
>>>> components get invalidated.
>>>> Solution:
>>>> Implement the java.awt.smartInvalidate behavior locally for the
>>>> XTextAreaPeer internal components. This prevents the invalidation of
>>>> the TextArea's parent, and the bug is resolved.
>>>> --
>>>> best regards,
>>>> Anthony

More information about the awt-dev mailing list