<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.


> 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