<Swing Dev> Swing dev>[10] Review request for JDK-8189253: [macos] JPopupMenu is inadvertently shown when using setComponentPopupMenu
Semyon Sadetsky
semyon.sadetsky at oracle.com
Mon Jan 8 16:36:43 UTC 2018
Hi Manajit,
Still didn't get why are you limited to Mac platform only while you
change updates generic code. Why mouse provided by Apple matters here?
--Semyon
On 01/08/2018 01:40 AM, Manajit Halder wrote:
> Hi Semyon,
>
> I could not reproduce the behaviour on Mac as on Mac this operation is
> not possible and hence it won’t be a problem on Mac. It is not
> possible to press the right button or the left button when the other
> button is already pressed using both Mouse provided by Apple and Track
> pad. Once the left button is pressed it need to be release to press
> the right button and vice versa.
>
> Thanks,
> Manajit
>
>> On 05-Jan-2018, at 7:08 AM, Semyon Sadetsky
>> <semyon.sadetsky at oracle.com <mailto:semyon.sadetsky at oracle.com>> wrote:
>>
>> Hi Manajit,
>>
>> I could reproduce similar behaviour on Linux when mouse is dragged to
>> another component with the left button pressed and then the right
>> button is immediately pressed. The popup is triggered by the same
>> logic despite it isn't configured for the component.
>>
>> --Semyon
>>
>> On 01/04/2018 10:22 AM, Manajit Halder wrote:
>>> Hi Semyon,
>>>
>>> Fix for issue JDK-8080729
>>> <https://bugs.openjdk.java.net/browse/JDK-8080729> has caused this
>>> regression due to changes in method setVisible(boolean visible) in
>>> file CPlatformWindow.java
>>> orderWindow is causing the issue here, if we revert to
>>> addChildWindow then the issue is not observed but then the fix for
>>> issue JDK-8080729 fails.
>>> Before this change the child window used to be added on to the
>>> parent as shown below in the commented code. But after the change
>>> child window is ordered above the parent.
>>>
>>> Below code causes the regression:
>>>
>>> *CWrapper.NSWindow.orderWindow(ptr, CWrapper.NSWindow.NSWindowAbove,
>>> ownerPtr);*
>>> *//CWrapper.NSWindow.addChildWindow(ownerPtr, ptr,
>>> CWrapper.NSWindow.NSWindowAbove);*
>>>
>>> Debugging further I found that if we use orderWindow then the new
>>> window is considered as new graphics device in the method
>>> notifyReshape in LWWindowPeer.java (the method
>>> updateGraphicsDevice() returns true) and is the difference between
>>> using orderWindow and addChildWindow.
>>>
>>> Since the option to add child window is between choosing oderWindow
>>> and addChildWindow we don’t have any option to do the fix in the Mac
>>> OS native code.
>>>
>>> Regards,
>>> Manajit
>>>
>>>
>>>> On 02-Jan-2018, at 11:30 PM, Semyon Sadetsky
>>>> <semyon.sadetsky at oracle.com <mailto:semyon.sadetsky at oracle.com>> wrote:
>>>>
>>>> Hi Manajit,
>>>>
>>>> JDK-8080729 bug was Mac OS specific issue and its fix changed the
>>>> Mac OS code only. Nevertheless you are suggesting to fix the
>>>> regression in generic code. This need to be explained somehow.
>>>>
>>>> --Semyon
>>>>
>>>> On 12/25/2017 02:42 AM, Manajit Halder wrote:
>>>>> Hi Semyon,
>>>>>
>>>>> Regression is cause by JDK-8080729
>>>>> <https://bugs.openjdk.java.net/browse/JDK-8080729>. The fix can’t
>>>>> be reversed since it is the choice between addChildWindow or
>>>>> orderWindow. Went through code flow related to the issue
>>>>> but didn’t find any other better place in code to handle this
>>>>> issue. The best way to fix the issue would be to avoid retargeting
>>>>> of events (MOUSE_ENTER and MOUSE_EXIT) between MOUSE_PRESS and
>>>>> MOUSE_RELEASE on the parent window (when the mouse is actually on
>>>>> the child window). Therefore request you to review the webrev.00.
>>>>>
>>>>> Regards,
>>>>> Manajit
>>>>>
>>>>>> On 08-Dec-2017, at 9:55 PM, semyon.sadetsky at oracle.com
>>>>>> <mailto:semyon.sadetsky at oracle.com> wrote:
>>>>>>
>>>>>> Hi Manajit,
>>>>>>
>>>>>> Can you provide information which fix caused the regression?
>>>>>>
>>>>>> --Semyon
>>>>>>
>>>>>>
>>>>>> On 12/8/17 5:53 AM, Manajit Halder wrote:
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Kindly review the following Swing fix.
>>>>>>>
>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8189253
>>>>>>> Webrev: http://cr.openjdk.java.net/~mhalder/8189253/webrev.00/
>>>>>>> <http://cr.openjdk.java.net/%7Emhalder/8189253/webrev.00/>
>>>>>>>
>>>>>>> Cause:
>>>>>>> Issue was due to retargeting of mouse enter exit events.
>>>>>>> MOUSE_ENTER and MOUSE_EXIT events were sent on the parent window
>>>>>>> (JFrame) in between MOUSE_PRESS and MOUSE_RELEASE events on the
>>>>>>> modeless JDialog.
>>>>>>>
>>>>>>> Fix:
>>>>>>> Retargeting of events is not done in-between MOUSE_PRESS and
>>>>>>> MOUSE_RELEASE.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Manajit
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20180108/5bc0788b/attachment.html>
More information about the swing-dev
mailing list