<Swing Dev> [10] RFR JDK-8075063:Context menu closes on mouse scroll
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Fri Jun 16 15:49:41 UTC 2017
I was not sure about the scenario at what condition those ungrabs are
sent, so I did not modify those. For wheel event outside our java window
was the scenario here and my modification fixed that.
// According to the specification of UngrabEvent, post it
// when press occurs outside of the window and not on its owned windows
Regards
Prasanta
On 6/16/2017 8:57 PM, Semyon Sadetsky wrote:
> In lines 2337 and 2345 ungrab is also sent. Shouldn't the button
> number be checked there as well before ungrab?
>
> --Semyon
>
>
> On 06/16/2017 03:22 AM, Prasanta Sadhukhan wrote:
>> 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