<AWT Dev> [11] RFR 8205479: OS X: requestFocus() does not work properly for embedded frame
Alexey Ivanov
alexey.ivanov at oracle.com
Wed Aug 15 18:46:55 UTC 2018
Hi Dmitry,
The fix looks good.
Can an automated test be written for this issue?
Regards,
Alexey
On 06/08/2018 15:46, Dmitry Markov wrote:
> Thank you, Sergey!
>
> Looking for the second +1 from someone else.
>
> Thanks,
> Dmitry
>
>> On 5 Aug 2018, at 01:15, Sergey Bylokhov <Sergey.Bylokhov at oracle.com
>> <mailto:Sergey.Bylokhov at oracle.com>> wrote:
>>
>> Looks fine.
>>
>> On 01/07/2018 02:26, Dmitry Markov wrote:
>>> Hi Sergey,
>>> The changes in CPlatformEmbeddedFrame are intended for handling the
>>> case when the embedder window contains several embedded frames and
>>> focus is transferred programmatically between the frames. In
>>> particular if requestFocus() is invoked for some component located
>>> at inactive frame it is necessary to activate the frame via
>>> CPlatformEmbeddedFrame.requestWindowFocus() to make such focus
>>> transition possible.
>>> I am sorry, I do not have information about whether the situation
>>> described above is applicable for SWT or not. Anyway it is out of
>>> scope for this review.
>>> Thanks,
>>> Dmitry
>>>> On 1 Jul 2018, at 00:21, Sergey Bylokhov
>>>> <Sergey.Bylokhov at oracle.com
>>>> <mailto:Sergey.Bylokhov at oracle.com><mailto:Sergey.Bylokhov at oracle.com>>
>>>> wrote:
>>>>
>>>> Hi, Dmitry
>>>> Can you please clarify why the changes in CPlatformEmbeddedFrame
>>>> are necessary? Why the same code does not exists in
>>>> CViewPlatformEmbeddedFrame?
>>>>
>>>> On 27/06/2018 10:25, Dmitry Markov wrote:
>>>>> Hi Sergey,
>>>>> You are right, it is better to use synthesizeWindowActivation().
>>>>> Please find the updated webrew
>>>>> here:http://cr.openjdk.java.net/~dmarkov/8205479/webrev.01/
>>>>> <http://cr.openjdk.java.net/%7Edmarkov/8205479/webrev.01/><http://cr.openjdk.java.net/%7Edmarkov/8205479/webrev.01/>
>>>>> Changes:
>>>>> - Overrode synthesizeWindowActivation() for CEmbeddedFrame. It
>>>>> calls handleWindowFocusEvent() which actually activates or
>>>>> deactivates embedded frame.
>>>>> - Added updateGlobalFocusedWindow() to CEmbeddedFrame. This
>>>>> method should be called when the focus is transferred to embedded
>>>>> frame programmatically since handleWindowFocusEvent() skips
>>>>> activation for non-focused embedded frames.
>>>>> Thanks,
>>>>> Dmitry
>>>>>> On 27 Jun 2018, at 01:20, Sergey Bylokhov
>>>>>> <Sergey.Bylokhov at oracle.com
>>>>>> <mailto:Sergey.Bylokhov at oracle.com><mailto:Sergey.Bylokhov at oracle.com><mailto:Sergey.Bylokhov at oracle.com>>
>>>>>> wrote:
>>>>>>
>>>>>> Hi, Dmitry.
>>>>>> Can you please confirm that we should not implement
>>>>>> synthesizeWindowActivation() to achieve this behavior?
>>>>>> I guess we should do the same as in CViewEmbeddedFrame which is
>>>>>> used by SWT.
>>>>>>
>>>>>> On 25/06/2018 09:11, Dmitry Markov wrote:
>>>>>>> Hello,
>>>>>>> Could you review a fix for jdk11, please?
>>>>>>> bug:https://bugs.openjdk.java.net/browse/JDK-8205479
>>>>>>> webrev:http://cr.openjdk.java.net/~dmarkov/8205479/webrev.00/
>>>>>>> <http://cr.openjdk.java.net/%7Edmarkov/8205479/webrev.00/><http://cr.openjdk.java.net/%7Edmarkov/8205479/webrev.00/>
>>>>>>> Problem description:
>>>>>>> On Mac OSX when focus is transferred to some component located
>>>>>>> at embedded frame, CPlatformEmbeddedFrame.requestWindowFocus()
>>>>>>> is called to activate owning frame. However that method does
>>>>>>> nothing, (i.e. no activation happens). As a result the focus
>>>>>>> cannot be transferred to the component because its owner is not
>>>>>>> active.
>>>>>>> Fix:
>>>>>>> CPlatformEmbeddedFrame.requestWindowFocus() should activate the
>>>>>>> embedded frame, (i.e. invoke notifyActivation() for the
>>>>>>> corresponding peer).
>>>>>>> Thanks,
>>>>>>> Dmitry
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best regards, Sergey.
>>>>
>>>>
>>>> --
>>>> Best regards, Sergey.
>>
>>
>> --
>> Best regards, Sergey.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180815/176e2585/attachment-0001.html>
More information about the awt-dev
mailing list