<Swing Dev> [10] RFR JDK-8075063:Context menu closes on mouse scroll
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Fri Jun 16 10:22:06 UTC 2017
Yes, it is failing in linux as it posts a UngrabEvent which causes the
popup to be closed in BasicPopupMenuUI at eventDispatched()
if(ev instanceof sun.awt.UngrabEvent) {
// Popup should be canceled in case of ungrab event
cancelPopupMenu( );
return;
}
I have modified to not post the ungrab event if mouse wheel is rotated
by checking if button 4 or 5 is pressed or not.
as per https://stackoverflow.com/questions/15510472/scrollwheel-event-in-x11
and
ftp://www.x.org/pub/X11R6.8.0/doc/mouse.4.html [Wheel button events
(typically buttons 4 and 5) are usually used for scrolling]
http://cr.openjdk.java.net/~psadhukhan/8075063/webrev.01/
Regards
Prasanta
On 6/15/2017 8:55 PM, Semyon Sadetsky wrote:
> On 06/15/2017 08:18 AM, Prasanta Sadhukhan wrote:
>
>>
>>
>> On 6/15/2017 8:40 PM, Semyon Sadetsky wrote:
>>> On 06/14/2017 09:54 PM, Prasanta Sadhukhan wrote:
>>>> Hi Semyon,
>>>>
>>>> I tried on Firefox and other app. If popup or drop down menu is
>>>> opened, then mouse wheel rotation is not closing the popups. In our
>>>> case, it is closing the popups/menus.
>>> That is true. I meant you fixed only the case when the mouse wheel
>>> rotation is over java windows (wheel event's source != null). What
>>> will be if the wheel is rotated outside java (source == null), or it
>>> is not the case?
>>>
>> It is not closing in other app (if it rotated over non-app window) as
>> well as in our java with my fix.
> Did you check this on all platforms? At least on my Ubuntu it is not so.
>
> --Semyon
>>
>> Regards
>> Prasanta
>>> --Semyon
>>>>
>>>> Regards
>>>> Prasanta
>>>> On 6/14/2017 8:26 PM, Semyon Sadetsky wrote:
>>>>> Hi Prasanta,
>>>>>
>>>>> I may be wrong, but it seems to me that the standard behavior is
>>>>> when any wheel event cannot close popups.
>>>>>
>>>>> --Semyon
>>>>>
>>>>>
>>>>> On 06/13/2017 10:39 PM, Prasanta Sadhukhan wrote:
>>>>>> Hi All,
>>>>>>
>>>>>> Please review a fix for an issue whereby it is seen
>>>>>> hitting the scroll wheel by accident closes whole structure of
>>>>>> context menus causing it to disappear and the user has to invoke
>>>>>> the menu again.
>>>>>>
>>>>>> Issue was popupMenu is getting closed for mouse wheel rotation if
>>>>>> the menu is not from JComboBox.
>>>>>> If the context menu is opened from JMenuItem, JMenu then if the
>>>>>> mouse wheel is rotated anywhere in frame, then it calls
>>>>>> cancelPopupMenu() causing it to call setVisible(false) and so
>>>>>> menu disappears.
>>>>>>
>>>>>> Proposed fix is to check if the mouse wheel rotation is done in
>>>>>> JMenu, JMenuItem or anywhere in frame, then if popup is present,
>>>>>> then do not close the popupmenu.
>>>>>>
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8075063
>>>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8075063/webrev.00/
>>>>>>
>>>>>> Regards
>>>>>> Prasanta
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the swing-dev
mailing list