<AWT Dev> [11] RFR 8205479: OS X: requestFocus() does not work properly for embedded frame
Alexey Ivanov
alexey.ivanov at oracle.com
Thu Aug 16 10:11:19 UTC 2018
Hi Dmitry,
Thank you for confirming it.
Regards,
Alexey
On 16/08/2018 12:50, Dmitry Markov wrote:
> Hi Alexey,
>
> Thank you for the review. Unfortunately it is impossible to create the
> automated standalone test for this issue.
>
> Thanks,
> Dmitry
>
>> On 15 Aug 2018, at 19:46, Alexey Ivanov <alexey.ivanov at oracle.com
>> <mailto:alexey.ivanov at oracle.com>> wrote:
>>
>> 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/20180816/5a4a38ca/attachment-0001.html>
More information about the awt-dev
mailing list