mirror of https://github.com/encounter/SDL.git
Send absolute mouse motion when in normal mouse mode and relative mouse motion when in relative mode on iOS
This keeps the SDL cursor in sync with the visible cursor when in normal mouse mode.
This commit is contained in:
parent
19c129faba
commit
27ce914463
|
@ -234,7 +234,9 @@ static void OnGCMouseConnected(GCMouse *mouse) API_AVAILABLE(macos(11.0), ios(14
|
||||||
|
|
||||||
mouse.mouseInput.mouseMovedHandler = ^(GCMouseInput *mouse, float deltaX, float deltaY)
|
mouse.mouseInput.mouseMovedHandler = ^(GCMouseInput *mouse, float deltaX, float deltaY)
|
||||||
{
|
{
|
||||||
SDL_SendMouseMotion(SDL_GetMouseFocus(), mouseID, SDL_TRUE, (int)deltaX, -(int)deltaY);
|
if (SDL_GCMouseRelativeMode()) {
|
||||||
|
SDL_SendMouseMotion(SDL_GetMouseFocus(), mouseID, 1, (int)deltaX, -(int)deltaY);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
dispatch_queue_t queue = dispatch_queue_create( "org.libsdl.input.mouse", DISPATCH_QUEUE_SERIAL );
|
dispatch_queue_t queue = dispatch_queue_create( "org.libsdl.input.mouse", DISPATCH_QUEUE_SERIAL );
|
||||||
|
|
|
@ -160,7 +160,7 @@ extern int SDL_AppleTVRemoteOpenedAsJoystick;
|
||||||
|
|
||||||
#if !TARGET_OS_TV && defined(__IPHONE_13_4)
|
#if !TARGET_OS_TV && defined(__IPHONE_13_4)
|
||||||
- (UIPointerRegion *)pointerInteraction:(UIPointerInteraction *)interaction regionForRequest:(UIPointerRegionRequest *)request defaultRegion:(UIPointerRegion *)defaultRegion API_AVAILABLE(ios(13.4)){
|
- (UIPointerRegion *)pointerInteraction:(UIPointerInteraction *)interaction regionForRequest:(UIPointerRegionRequest *)request defaultRegion:(UIPointerRegion *)defaultRegion API_AVAILABLE(ios(13.4)){
|
||||||
if (request != nil && !SDL_HasGCMouse()) {
|
if (request != nil && (!SDL_HasGCMouse() || !SDL_GCMouseRelativeMode())) {
|
||||||
CGPoint origin = self.bounds.origin;
|
CGPoint origin = self.bounds.origin;
|
||||||
CGPoint point = request.location;
|
CGPoint point = request.location;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue