From da6cfab10551ccc2fbdab55a6e90962bddeebdba Mon Sep 17 00:00:00 2001 From: Alexander Scherbatiy Date: Wed, 30 May 2012 14:58:30 +0400 Subject: [PATCH] 7141296: [macosx] Mouse Wheel Turn closes combobox popup Reviewed-by: rupashka --- .../macosx/classes/com/apple/laf/AquaScrollPaneUI.java | 4 ++++ .../classes/sun/lwawt/macosx/CPlatformResponder.java | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/jdk/src/macosx/classes/com/apple/laf/AquaScrollPaneUI.java b/jdk/src/macosx/classes/com/apple/laf/AquaScrollPaneUI.java index 1035a3e535e..39eb640e3db 100644 --- a/jdk/src/macosx/classes/com/apple/laf/AquaScrollPaneUI.java +++ b/jdk/src/macosx/classes/com/apple/laf/AquaScrollPaneUI.java @@ -60,6 +60,10 @@ public class AquaScrollPaneUI extends javax.swing.plaf.basic.BasicScrollPaneUI { if (wasVisible) { vScrollBar.setVisible(true); } + + // Consume the event even when the scrollBar is invisible + // see #7124320 + e.consume(); } } } diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java index aa5c616b428..059ef01f3c7 100644 --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java @@ -109,8 +109,14 @@ final class CPlatformResponder { final long when = System.currentTimeMillis(); final int scrollType = MouseWheelEvent.WHEEL_UNIT_SCROLL; final int scrollAmount = 1; + int wheelRotation = (int) delta; + int signum = (int) Math.signum(delta); + if (signum * delta < 1) { + wheelRotation = signum; + } + // invert the wheelRotation for the peer peer.dispatchMouseWheelEvent(when, x, y, modifiers, scrollType, - scrollAmount, (int) -delta, -delta, null); + scrollAmount, -wheelRotation, -delta, null); } /**