Hello,

Could you review the fix:
  bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7026679
  webrev: http://cr.openjdk.java.net/~alexsch/7026679/webrev.00

This is the direct fix proposed in the issue.

XWindow keep track of button press-releases within the mouseButtonClickAllowed bitmask. The problem is it's per-window field. With JComboBox some events comes to XContentWindow some into XFramePeer due to the specifics of this component - it opens extra toplevel window for the dropdown. E.g. MOUSE_PRESS comes to XContentWindow and update its mouseButtonClickAllowed version with proper value (say 512 - left button). But MOUSE_RELEASE comes to XFramePeer which mouseButtonClickAllowed value is 0.
Later on it checks for its state in XWindow.handleMousePressRelease:
            if ((type == XConstants.ButtonRelease) &&
((mouseButtonClickAllowed & XConstants.buttonsMask[lbutton]) != 0) ) // No up-button in the drag-state
            {
                   <construct and post a CLICK_EVENT>

But unfortunately it's value is 0 instead of 512 so we just skip MOUSE_CLICKED creation. It seems that making this variable static is reasonable approach to keep the state of the mouse.


Thanks,
Alexandr.

Reply via email to