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

Denis S. Fokin Denis.Fokin at Sun.COM
Fri Sep 19 00:07:23 PDT 2008


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