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