<Swing Dev> [10] RFR JDK-8173739: JPopupMenu does not disappear on KeyEvent
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Fri Jul 21 08:35:25 UTC 2017
Hi Sergey,
On 7/21/2017 8:09 AM, Sergey Bylokhov wrote:
> Hello, Prasanta.
>
> Can you please double check how the updated method will work when the security manager is enabled? For example the similar code in BasicInternalFrameTitlePane.postClosingEvent() have special check for that.
Yes, we need to add that check for this updation too as it fails with
AccessControlException without it.
> Also please confirm that the updated code will be called if the user will hide the InternalFrame using: dispose(), setVisible(false), moveToBack() or toFront(), hide() or if the InternalFrame will be minimized.
I have added similar fix for dispose() too. It now works for all these.
http://cr.openjdk.java.net/~psadhukhan/8173739/webrev.02/
Regards
Prasanta
> ----- prasanta.sadhukhan at oracle.com wrote:
>
>> Any further comments on this?
>>
>> Regards
>> Prasanta
>>
>> On 7/12/2017 1:19 PM, Sergey Bylokhov wrote:
>>> I'll take a look tomorrow just to refresh the memory on how this
>> part of code works.
>>> ----- prasanta.sadhukhan at oracle.com wrote:
>>>
>>>> Any further comments on this? Can it be committed now?
>>>>
>>>> Regards
>>>> Prasanta
>>>> On 7/4/2017 12:35 PM, Prasanta Sadhukhan wrote:
>>>>> OK. Updated webrev to post ungrab from a method when internal
>> frame
>>>> is
>>>>> deselected.
>>>>>
>>>>> There is no grab event. When popup menu is visible, it grab
>> window
>>>> in
>>>>> BasicPopupMenuUI
>>>>> public void stateChanged(ChangeEvent e) {
>>>>> MenuSelectionManager msm =
>>>>> MenuSelectionManager.defaultManager();
>>>>> MenuElement[] p = msm.getSelectedPath();
>>>>>
>>>>> if (lastPathSelected.length == 0 && p.length != 0) {
>>>>> grabWindow(p);
>>>>> }
>>>>>
>>>>> http://cr.openjdk.java.net/~psadhukhan/8173739/webrev.01/
>>>>>
>>>>> Regards
>>>>> Prasanta
>>>>> On 7/4/2017 12:01 AM, Sergey Bylokhov wrote:
>>>>>> There are a few questions which should be clarified, because
>> from
>>>> the
>>>>>> first look we should updated some other method.
>>>>>>
>>>>>> - The updated method is protected and have no any information
>> in
>>>>>> the specification that it can post ungrab event.
>>>>>> - If there are a few listeners then the code will post a few
>>>> ungrab
>>>>>> events. It is also interesting when the grab event is posted?
>>>>>>
>>>>>> ----- prasanta.sadhukhan at oracle.com wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Please review a fix for an issue where it is seen that if a
>> popup
>>>> menu
>>>>>>> is shown in an internal frame and
>>>>>>> another internal frame is shown on top of 1st frame, then even
>>>> though
>>>>>>> 1st internal frame gets hidden, the popup is still visible.
>>>>>>>
>>>>>>> Issue was popup menu was not getting cancelled when the 1st
>>>> internal
>>>>>>> frame gets hidden/deactivated.
>>>>>>> Poprosed fix is to send an UngrabEventwhen the 1st internal
>> frame
>>>> gets
>>>>>>> deactivated
>>>>>>> so that BasicPopupMenuUI can catch the UngrabEvent and
>> cancel
>>>> the
>>>>>>> popupmenu .
>>>>>>>
>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8173739
>>>>>>> webrev:
>> http://cr.openjdk.java.net/~psadhukhan/8173739/webrev.00/
>>>>>>> Regards
>>>>>>> Prasanta
More information about the swing-dev
mailing list