<AWT Dev> [8] Request for review: 7166296 closed/java/awt/Frame/DisabledParentOfToplevel/DisabledParentOfToplevel.html failed since 1.8.0b36
Anthony Petrov
anthony.petrov at oracle.com
Mon Apr 22 13:01:18 PDT 2013
I don't believe getNativeContainer() should ever traverse a hierarchy
outside of the toplevel window for component of which it's been called
(or for the window itself if it's called on a Window instance). If some
code expects otherwise, then there is a bug in that code which needs fixing.
Could you please point me to exact locations where the code does that?
--
best regards,
Anthony
On 04/22/2013 06:24 PM, Sergey Bylokhov wrote:
> On 22.04.2013 17:55, Anthony Petrov wrote:
>> Ah, I see the Component.getNativeContainer() checks whether the peer
>> is lightweight or not. I believe it needs to be overridden in the
>> Window class to return "this", though. Otherwise there's still a bug
>> in this method.
> But window's implementation mix owner/container during initialization of
> WWindowPeer. There is only one field "parent", which assigned from the
> SunToolkit.getNativeContainer().
> I assume that, when this method was added the window's parent/container
> and the window's owner were one concept.
>> I don't quite understand this point. Please elaborate.
>>
>> What I see is that we call SunToolkit.getNativeContainer() which isn't
>> overridden in UNIXToolkit nor XToolkit, and thus results in a call to
>> Toolkit.getNativeContainer(). The latter calls
>> Component.getNativeContainer(). Which, w/o an override suggested
>> above, produces an incorrect result and is the root cause of our bug,
>> isn't it?
> The question is, what the result is correct. Currently, some code
> expects the owner will be refunded.
>>
>> --
>> best regards,
>> Anthony
>>
>>>>
>>>> --
>>>> best regards,
>>>> Anthony
>>>>
>>>> On 04/22/13 16:06, Sergey Bylokhov wrote:
>>>>> Hello,
>>>>> Please review the fix for jdk 8.
>>>>> SetEnable method check status of all parent containers and windows(via
>>>>> getParent() in SunToolkit.getNativeContainer()). But only
>>>>> containers in
>>>>> the same window should be checked.
>>>>> The new method was added to return the peer of the nearest heavyweight
>>>>> container.
>>>>>
>>>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7166296
>>>>> Webrev can be found at:
>>>>> http://cr.openjdk.java.net/~serb/7166296/webrev.00
>>>>>
>>>
>>>
>
>
More information about the awt-dev
mailing list