JDK-4874103 : addMouseWheelListener doesn't work with a Thinkpad Trackpoint
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.2
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2003-06-04
  • Updated: 2007-03-21
Related Reports
Relates :  
Description
Name: rmT116609			Date: 06/04/2003


FULL PRODUCT VERSION :
java version "1.4.2-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-beta-b19)
Java HotSpot(TM) Client VM (build 1.4.2-beta-b19, mixed mode)


FULL OS VERSION :
Microsoft Windows XP [Version 5.1.2600]


EXTRA RELEVANT SYSTEM CONFIGURATION :
Thinkpad T40P with Trackpoint

A DESCRIPTION OF THE PROBLEM :
The Thinkpad emulates the mouse wheel by simultaneously click on a scroll button and dragging the Trackpoint button. This works perfectly in Mozilla, however is addMouseWheelListener doesn't detect the event. Additionally, an external Logitech mouse on the same Thinkpad mouse wheel works correctly.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Get your hands on a Thinkpad (also fails on an A20P with win98SE).

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
addMouseWheelListener should detect Trackpoint wheel.
ACTUAL -
it doesn't

REPRODUCIBILITY :
This bug can be reproduced always.
(Review ID: 187049) 
======================================================================

Comments
EVALUATION Latest experiments show that the trackpoint may or may not emulate the MouseWheel events. Depending on chosen options(http://my.opera.com/community/forums/topic.dml?id=11041) it also may send WM_HSCROLL/WM_VSCROLL. As from the Java side we do all essential things to handle MouseWheel but we still can't do much with those WM_HSCROLLs. I'm attaching three dumps (one in text, two others are in bmp files) that represents the event sequence for Java and for native applications. There are two native applications were used: notepad and outlook. One with enabled workaround and one without. In the first case MOUSEWHEEL events are coming to the SPY++. In the second there is a number of WM_HSCROLL/WM_VSCROLL events. As this is not yet a supported option in JDK and it is specific to the driver then this is an issue of further implementation. I'm transfering this CR to the RFE status.
26-01-2007

EVALUATION We've received a report that IBM trackpoint behaves differently: it doens't change pointer position to the scrollbar's arrow. Should evaluate it further.
24-05-2006

EVALUATION there is no response. I'd say it's the same as 6408392 which might not be considered like a defect. I'm closing it as not a bug.
02-05-2006

EVALUATION If trackpoint works fine with native as well as pure AWT applications then suppose this is exactly the same as 6408392. This has a detailed explanation there. When I press the area on my touchpad reponsible for scrolling and move finger there I cound notice that the mouse pointer changes its initial location to the thumb of the nearest (most likely belonging to current focused window) scrollbar. At that moment "dragging" sequence begins. But this is not the same as rotate mouse wheel. In the first case OS sends WM_MOUSEPRESS/WM_MOUSEMOVE/WM_MOUSERELEASE whereas mouse wheel just sends WM_MOUSEWHEEL. Though I believe this is a duplicate of 6408392 we have to double-check it. To be sure I'd ask submitter what exactly happens when he uses trackpoint? If mouse pointer changes its location to the scrollbar? If it restores its location once you stop scrolling?
07-04-2006

EVALUATION Seem currently only scrollable components are sensible to WM_V|HSCROLL messages and respond correctly. The question is if we try to implement that ability for every window then how we should interact with scrollbars/scrollpanes.
07-03-2006

EVALUATION MouseWheelEvents in Java are delivered in response to WM_MOUSEWHEEL events on Windows. Although I don't have a Thinkpad to try with, I suspect that the driver is not sending WM_MOUSEWHEEL events to Windows. ###@###.### 2003-06-16
16-06-2003