< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m
Print this page
@@ -49,10 +49,14 @@
// Uncomment this line to see fprintfs of each InputMethod API being called on this View
//#define IM_DEBUG TRUE
//#define EXTRA_DEBUG
+#define SCROLL_MASK_WHEEL 1
+#define SCROLL_MASK_TRACKPAD (1 << 1)
+#define SCROLL_MASK_PHASE_BEGAN (1 << 2)
+
static BOOL shouldUsePressAndHold() {
static int shouldUsePressAndHold = -1;
if (shouldUsePressAndHold != -1) return shouldUsePressAndHold;
shouldUsePressAndHold = !isSnowLeopardOrLower();
return shouldUsePressAndHold;
@@ -380,21 +384,30 @@
clickCount = 0;
} else {
clickCount = [event clickCount];
}
+ jint scrollMask = 0;
+ if (type == NSScrollWheel) {
+ scrollMask = ([event phase]) ? SCROLL_MASK_TRACKPAD : SCROLL_MASK_WHEEL;
+ if ([event phase] == NSEventPhaseBegan) {
+ scrollMask |= SCROLL_MASK_PHASE_BEGAN;
+ }
+ }
+
static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
- static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDD)V");
+ static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDDI)V");
jobject jEvent = JNFNewObject(env, jctor_NSEvent,
[event type],
[event modifierFlags],
clickCount,
[event buttonNumber],
(jint)localPoint.x, (jint)localPoint.y,
(jint)absP.x, (jint)absP.y,
[event deltaY],
- [event deltaX]);
+ [event deltaX],
+ scrollMask);
CHECK_NULL(jEvent);
static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
static JNF_MEMBER_CACHE(jm_deliverMouseEvent, jc_PlatformView, "deliverMouseEvent", "(Lsun/lwawt/macosx/NSEvent;)V");
jobject jlocal = (*env)->NewLocalRef(env, m_cPlatformView);
< prev index next >