From 8ec705003393f4a4b7430c81682541158e803816 Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Tue, 10 Nov 2020 12:17:54 +0200 Subject: macOS: Improved scrolling using mouse wheel This required further SDL hacking. The macOS SDL .diff was updated. IssueID #26 --- sdl2-macos-mouse-scrolling.diff | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sdl2-macos-mouse-scrolling.diff (limited to 'sdl2-macos-mouse-scrolling.diff') diff --git a/sdl2-macos-mouse-scrolling.diff b/sdl2-macos-mouse-scrolling.diff new file mode 100644 index 00000000..e2f30c24 --- /dev/null +++ b/sdl2-macos-mouse-scrolling.diff @@ -0,0 +1,36 @@ +diff -r 4f06c06b6d19 src/events/SDL_mouse.c +--- a/src/events/SDL_mouse.c Wed Aug 05 15:28:51 2020 +0200 ++++ b/src/events/SDL_mouse.c Tue Nov 10 12:16:06 2020 +0200 +@@ -642,8 +642,8 @@ + event.wheel.preciseX = x; + event.wheel.preciseY = y; + #endif +- event.wheel.x = integral_x; +- event.wheel.y = integral_y; ++ event.wheel.x = x; //integral_x; ++ event.wheel.y = y; //integral_y; + event.wheel.direction = (Uint32)direction; + posted = (SDL_PushEvent(&event) > 0); + } +diff -r 4f06c06b6d19 src/video/cocoa/SDL_cocoamouse.m +--- a/src/video/cocoa/SDL_cocoamouse.m Wed Aug 05 15:28:51 2020 +0200 ++++ b/src/video/cocoa/SDL_cocoamouse.m Tue Nov 10 12:16:06 2020 +0200 +@@ -424,10 +424,16 @@ + } + + SDL_MouseID mouseID = mouse->mouseID; +- CGFloat x = -[event deltaX]; +- CGFloat y = [event deltaY]; ++ CGFloat x = -[event scrollingDeltaX]; ++ CGFloat y = [event scrollingDeltaY]; + SDL_MouseWheelDirection direction = SDL_MOUSEWHEEL_NORMAL; + ++ /* HACK: Make a distinction between precise and imprecise scrolling. ++ Trackpad seems to be mouseID 0. */ ++ if (![event hasPreciseScrollingDeltas]) { ++ mouseID = 1; ++ } ++ + if ([event respondsToSelector:@selector(isDirectionInvertedFromDevice)]) { + if ([event isDirectionInvertedFromDevice] == YES) { + direction = SDL_MOUSEWHEEL_FLIPPED; -- cgit v1.2.3