macOS: Add hint for smooth SDL_EVENT_MOUSE_WHEEL values

This commit is contained in:
Jan Sedivy
2024-09-06 23:26:39 +02:00
committed by Sam Lantinga
parent 2fa8acb084
commit c2b98e21ba
2 changed files with 18 additions and 1 deletions

View File

@@ -2288,6 +2288,21 @@ extern "C" {
*/ */
#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH" #define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH"
/**
* A variable controlling whether SDL_EVENT_MOUSE_WHEEL event values will have
* momentum on macOS.
*
* The variable can be set to the following values:
*
* - "0": The mouse wheel events will have no momentum. (default)
* - "1": The mouse wheel events will have momentum.
*
* This hint should be set before applicationDidFinishLaunching() is called.
*
* \since This hint is available since SDL 3.0.0.
*/
#define SDL_HINT_MAC_SCROLL_MOMENTUM "SDL_HINT_MAC_SCROLL_MOMENTUM"
/** /**
* Request SDL_AppIterate() be called at a specific rate. * Request SDL_AppIterate() be called at a specific rate.
* *

View File

@@ -106,8 +106,10 @@ static void Cocoa_DispatchEvent(NSEvent *theEvent)
+ (void)registerUserDefaults + (void)registerUserDefaults
{ {
BOOL momentumScrollSupported = (BOOL)SDL_GetHintBoolean(SDL_HINT_MAC_SCROLL_MOMENTUM, false);
NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys: NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithBool:NO], @"AppleMomentumScrollSupported", [NSNumber numberWithBool:momentumScrollSupported], @"AppleMomentumScrollSupported",
[NSNumber numberWithBool:NO], @"ApplePressAndHoldEnabled", [NSNumber numberWithBool:NO], @"ApplePressAndHoldEnabled",
[NSNumber numberWithBool:YES], @"ApplePersistenceIgnoreState", [NSNumber numberWithBool:YES], @"ApplePersistenceIgnoreState",
nil]; nil];