From 7470f4ffcfdced0b9ce96f938563018a78bb4423 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Wed, 23 Jul 2014 15:00:30 +0100 Subject: [PATCH] New: CPEvent scrollingDeltaX, scrollingDeltaY and hasPreciseScrollingDeltas. Refs #2013. --- AppKit/CPEvent.j | 30 ++++++++++++++++++++++++++++++ Tests/AppKit/CPEventTest.j | 2 ++ 2 files changed, 32 insertions(+) diff --git a/AppKit/CPEvent.j b/AppKit/CPEvent.j index 190065d4d..8dbd7b720 100644 --- a/AppKit/CPEvent.j +++ b/AppKit/CPEvent.j @@ -68,6 +68,9 @@ var _CPEventPeriodicEventPeriod = 0, float _deltaX; float _deltaY; float _deltaZ; + float _scrollingDeltaX; + float _scrollingDeltaY; + BOOL _hasPreciseScrollingDeltas; #if PLATFORM(DOM) BOOL _suppressCappuccinoCut; @@ -163,7 +166,9 @@ var _CPEventPeriodicEventPeriod = 0, // Make sure these are 0 rather than nil. _deltaX = 0; + _scrollingDeltaX = 0; _deltaY = 0; + _scrollingDeltaY = 0; _deltaZ = 0; } @@ -417,6 +422,31 @@ var _CPEventPeriodicEventPeriod = 0, return _deltaZ; } +- (BOOL)hasPreciseScrollingDeltas +{ + return !!_hasPreciseScrollingDeltas; +} + +/*! + Returns the change in points on the x-axis for a mouse movement, unless hasPreciseScrollingDeltas is NO, + in which case the change is measured in number of "lines" or "rows" and needs to be multiplied as appropriate + to get change in pixels. +*/ +- (float)scrollingDeltaX +{ + return _scrollingDeltaX; +} + +/*! + Returns the change in points on the y-axis for a mouse movement, unless hasPreciseScrollingDeltas is NO, + in which case the change is measured in number of "lines" or "columns" and needs to be multiplied as appropriate + to get change in pixels. +*/ +- (float)scrollingDeltaY +{ + return _scrollingDeltaY; +} + - (BOOL)_triggersKeyEquivalent:(CPString)aKeyEquivalent withModifierMask:aKeyEquivalentModifierMask { if (!aKeyEquivalent) diff --git a/Tests/AppKit/CPEventTest.j b/Tests/AppKit/CPEventTest.j index 0313a7ba4..09073d5a6 100644 --- a/Tests/AppKit/CPEventTest.j +++ b/Tests/AppKit/CPEventTest.j @@ -21,6 +21,8 @@ [self assert:0 equals:[anEvent deltaX] message:"default event delta X should be 0"]; [self assert:0 equals:[anEvent deltaY] message:"default event delta Y should be 0"]; [self assert:0 equals:[anEvent deltaZ] message:"default event delta Z should be 0"]; + [self assert:0 equals:[anEvent scrollingDeltaX] message:"default event scrolling delta X should be 0"]; + [self assert:0 equals:[anEvent scrollingDeltaY] message:"default event scrolling delta Y should be 0"]; } - (void)testDescription