<AWT Dev> [9] Review request : 8038919, Requesting focus to a modeless dialog doesn't work on Safari
Anton V. Tarasov
anton.tarasov at oracle.com
Wed Oct 8 06:41:37 UTC 2014
Hi Mikhail,
(sorry, I was away yesterday)
On 07.10.2014 19:37, mikhail cherkasov wrote:
> Hi Anton,
>
> But anyway, I'll have to use "instanceof" to check the type returned for
> DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow().getPeer() .
> or does it always return only LWWindowPeer?
That's right, on Mac a toplevel's peer is of LWWindowPeer type.
Also, I think you should check for the active window to be not null (it's possible when all the
toplevels are set non-focusable).
However, you can omit a check for peer==null, as an active window may not have a null peer.
Regards,
Anton.
>
> Thanks,
> Mikhail.
>
> On 10/6/2014 12:56 PM, Anton V. Tarasov wrote:
>> Hi Mikhail,
>>
>> Ok, thank you for the clarification.
>>
>> Still, let's make another attempt to avoid the "instanceof". In LWWindowPeer we have a good
>> public method - getPeerType() - which should return PeerType.EMBEDDED_FRAME for EF. Can it be
>> used in the code spot?
>>
>> Regards,
>> Anton.
>>
>> On 06.10.2014 11:08, mikhail cherkasov wrote:
>>> Hi Anton,
>>>
>>> it's window problem, toFront doesn't work for windows when embedded frame in browser is active.
>>> Mac ignores toFront, because it recognizes browser is active application and doesn't
>>> allow to java process activate its window.
>>> So the problem occurs only when we call toFront on Windows and embedded frame is active, hence
>>> fix should be done in Window's toFront method.
>>>
>>> Thanks,
>>> Mikhail.
>>>
>>>
>>> On 10/3/2014 5:48 PM, Anton V. Tarasov wrote:
>>>> Hi Mikhail,
>>>>
>>>> Can we get rid of that "instance of"? I think it makes sense to create a new
>>>> LWEmbeddedFramePeer class with toFront overriden. Then we can do all the verifications
>>>> gracefully and call platformWindow.toFrontIgnoringOtherApps() (new method). I would also rename
>>>> LWCToolkit.activateApplication to match its native API call.
>>>>
>>>> What do you think?
>>>>
>>>> Regards,
>>>> Anton.
>>>>
>>>> On 16.09.2014 15:39, mikhail cherkasov wrote:
>>>>> Hello all,
>>>>>
>>>>> please review the fix
>>>>> http://cr.openjdk.java.net/~mcherkas/8038919/webrev.01/
>>>>>
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8038919
>>>>>
>>>>> The problem appears if we trying to call toFront when embedded window is active in browser, this
>>>>> call is ignored, because for macosx the browser process is active and it ignores
>>>>> [nsWindow orderFront:nsWindow] call to java process windows.
>>>>> To fix this issue I use [NSApp activateIgnoringOtherApps:YES]; before [nsWindow
>>>>> orderFront:nsWindow]
>>>>> if an embedded frame is active window.
>>>>>
>>>>> Thanks,
>>>>> Mikhail.
>>>>>
>>>>
>>>
>>
>
More information about the awt-dev
mailing list