<AWT Dev> hg: jdk7/awt/jdk: 6315717: Support for mouse with multiple scroll wheels and 4 or more buttons

Andrei V. Dmitriev Andrei.Dmitriev at Sun.COM
Fri Sep 19 07:27:18 PDT 2008


Thanks for catching that!
We got it, keep track on CR 6750288. Guys outside, as usual, you are 
having a 24h timeout... the system is sneezing updating the web view. :(
Initial evaluation is like this: that's because the X decided that its 
mouse has 32 buttons though I thought X standard mentions 24 as the 
maximum.
Anyway, we predict a lot of people has similar environments. Attempt to 
address this issue with using long type instead of int sounds safe enough.
Thanks,
   Andrei

Artem Ananiev wrote:
> Yes, please,
> 
> Thanks,
> 
> Artem
> 
> Denis S. Fokin wrote:
>> Ups...
>>
>> Looks like we have a problem with the implementation.
>>
>> I have got an exception
>>
>> Sep 19, 2008 10:59:47 AM sun.awt.X11.XToolkit processException
>> WARNING: Exception on Toolkit thread
>> java.lang.ArrayIndexOutOfBoundsException: 24
>>        at sun.awt.X11.XWindow.handleMotionNotify(XWindow.java:776)
>>        at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1083)
>>        at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1053)
>>        at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:511)
>>        at sun.awt.X11.XToolkit.run(XToolkit.java:606)
>>        at sun.awt.X11.XToolkit.run(XToolkit.java:541)
>>        at java.lang.Thread.run(Thread.java:674)
>>
>> in the next part of the code
>>
>>        //this doesn't work for extra buttons because Xsystem is 
>> sending state==0 for every extra button event.
>>        // we can't correct it in MouseEvent class as we done it with 
>> modifiers, because exact type (DRAG|MOVE)
>>        // should be passed from XWindow.
>>        //TODO: eliminate it with some other value obtained w/o AWTLock.
>>        for (int i = 0; i < XToolkit.getNumMouseButtons(); i++){
>>            // TODO : here is the bug in WM: extra buttons doesn't have 
>> state!=0 as they should.
>>            if ((i != 4) && (i != 5)) {
>>                mouseKeyState = mouseKeyState | (xme.get_state() & 
>> XConstants.buttonsMask[i]);
>>            }
>>        }
>>
>> Should I file a CR?
>>
>> Thank you,
>>              Denis.
>>
>> Andrei Dmitriev wrote:
>>> Thanks!
>>> Oleg Sukhodolsky wrote:
>>>> Congratulations!!! You have  completed  this project (finally ;)
>>>>
>>>> On Tue, Sep 16, 2008 at 12:26 PM,  <andrei.dmitriev at sun.com> wrote:
>>>>  
>>>>> Changeset: 3b9a288d7ddb
>>>>> Author:    dav
>>>>> Date:      2008-09-16 12:17 +0400
>>>>> URL:       http://hg.openjdk.java.net/jdk7/awt/jdk/rev/3b9a288d7ddb
>>>>>
>>>>> 6315717: Support for mouse with multiple scroll wheels and 4 or 
>>>>> more buttons
>>>>> Summary: implementation of the more mouse buttons support
>>>>> Reviewed-by: art, dcherepanov
>>>>>
>>>>> ! make/sun/xawt/mapfile-vers
>>>>> ! src/share/classes/java/awt/Robot.java
>>>>> ! src/share/classes/java/awt/Toolkit.java
>>>>> ! src/share/classes/java/awt/doc-files/DesktopProperties.html
>>>>> ! src/share/classes/java/awt/event/InputEvent.java
>>>>> ! src/share/classes/java/awt/event/MouseEvent.java
>>>>> ! src/share/classes/java/awt/peer/RobotPeer.java
>>>>> ! src/share/classes/sun/awt/HeadlessToolkit.java
>>>>> ! src/solaris/classes/sun/awt/X11/XBaseWindow.java
>>>>> ! src/solaris/classes/sun/awt/X11/XConstants.java
>>>>> ! src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java
>>>>> ! src/solaris/classes/sun/awt/X11/XRobotPeer.java
>>>>> ! src/solaris/classes/sun/awt/X11/XToolkit.java
>>>>> ! src/solaris/classes/sun/awt/X11/XWindow.java
>>>>> ! src/solaris/classes/sun/awt/X11/XWindowPeer.java
>>>>> ! src/solaris/native/sun/awt/awt_Robot.c
>>>>> ! src/windows/classes/sun/awt/windows/WRobotPeer.java
>>>>> ! src/windows/classes/sun/awt/windows/WToolkit.java
>>>>> ! src/windows/native/sun/windows/awt_Component.cpp
>>>>> ! src/windows/native/sun/windows/awt_Component.h
>>>>> ! src/windows/native/sun/windows/awt_Robot.cpp
>>>>> ! src/windows/native/sun/windows/awt_Robot.h
>>>>> ! src/windows/native/sun/windows/awt_Toolkit.cpp
>>>>> ! src/windows/native/sun/windows/awt_Toolkit.h
>>>>> ! src/windows/native/sun/windows/awt_TrayIcon.cpp
>>>>> + test/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java
>>>>> + test/java/awt/Mouse/MouseModifiersUnitTest/ModifierPermutation.java
>>>>> + 
>>>>> test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java 
>>>>>
>>>>> + test/java/awt/Robot/ManualInstructions/ManualInstructions.java
>>>>> + test/java/awt/Robot/RobotExtraButton/RobotExtraButton.java
>>>>> + test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java
>>>>> + test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java
>>>>> + test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java
>>>>> + test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java
>>>>> + test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java
>>>>> + 
>>>>> test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions.java
>>>>> + 
>>>>> test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java 
>>>>>
>>>>> + 
>>>>> test/java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java 
>>>>>
>>>>>
>>>>>
>>>>>     
>>>
>>



More information about the awt-dev mailing list