diff -r 370a2c6f5a1d src/video/cocoa/SDL_cocoamouse.m --- a/src/video/cocoa/SDL_cocoamouse.m Tue Jun 11 11:01:15 2019 +0200 +++ b/src/video/cocoa/SDL_cocoamouse.m Tue Jun 11 13:19:58 2019 +0200 @@ -408,8 +408,9 @@ DLog("Motion was (%g, %g), offset to (%g, %g)", [event deltaX], [event deltaY], deltaX, deltaY); } - const SDL_MouseID mouseID = ([event subtype] == NSEventSubtypeTouch) ? SDL_TOUCH_MOUSEID : mouse->mouseID; - SDL_SendMouseMotion(mouse->focus, mouseID, 1, (int)deltaX, (int)deltaY); + if ([event subtype] != NSEventSubtypeTouch) { + SDL_SendMouseMotion(mouse->focus, mouse->mouseID, 1, (int)deltaX, (int)deltaY); + } } void @@ -437,8 +438,10 @@ } else if (y < 0) { y = SDL_floor(y); } - const SDL_MouseID mouseID = ([event subtype] == NSEventSubtypeTouch) ? SDL_TOUCH_MOUSEID : mouse->mouseID; - SDL_SendMouseWheel(window, mouseID, x, y, direction); + + if ([event subtype] != NSEventSubtypeTouch) { + SDL_SendMouseWheel(window, mouse->mouseID, x, y, direction); + } } void diff -r 370a2c6f5a1d src/video/cocoa/SDL_cocoawindow.m --- a/src/video/cocoa/SDL_cocoawindow.m Tue Jun 11 11:01:15 2019 +0200 +++ b/src/video/cocoa/SDL_cocoawindow.m Tue Jun 11 13:19:58 2019 +0200 @@ -933,15 +933,10 @@ clicks = (int) [theEvent clickCount]; - SDL_MouseID mouseID; - if ([theEvent subtype] == NSEventSubtypeTouch) { - mouseID = SDL_TOUCH_MOUSEID; - } else { + if ([theEvent subtype] != NSEventSubtypeTouch) { SDL_Mouse *mouse = SDL_GetMouse(); - mouseID = mouse ? mouse->mouseID : 0; + SDL_SendMouseButtonClicks(_data->window, mouse->mouseID, SDL_PRESSED, button, clicks); } - - SDL_SendMouseButtonClicks(_data->window, mouseID, SDL_PRESSED, button, clicks); } - (void)rightMouseDown:(NSEvent *)theEvent @@ -986,15 +981,10 @@ clicks = (int) [theEvent clickCount]; - SDL_MouseID mouseID; - if ([theEvent subtype] == NSEventSubtypeTouch) { - mouseID = SDL_TOUCH_MOUSEID; - } else { + if ([theEvent subtype] != NSEventSubtypeTouch) { SDL_Mouse *mouse = SDL_GetMouse(); - mouseID = mouse ? mouse->mouseID : 0; + SDL_SendMouseButtonClicks(_data->window, mouse->mouseID, SDL_RELEASED, button, clicks); } - - SDL_SendMouseButtonClicks(_data->window, mouseID, SDL_RELEASED, button, clicks); } - (void)rightMouseUp:(NSEvent *)theEvent @@ -1058,8 +1048,9 @@ } } - const SDL_MouseID mouseID = ([theEvent subtype] == NSEventSubtypeTouch) ? SDL_TOUCH_MOUSEID : mouse->mouseID; - SDL_SendMouseMotion(window, mouseID, 0, x, y); + if ([event subtype] != NSEventSubtypeTouch) { + SDL_SendMouseMotion(window, mouse->mouseID, 0, x, y); + } } - (void)mouseDragged:(NSEvent *)theEvent @@ -1086,6 +1077,11 @@ { NSSet *touches = [theEvent touchesMatchingPhase:NSTouchPhaseAny inView:nil]; int existingTouchCount = 0; + const BOOL ismouse = ([theEvent subtype] == NSEventSubtypeMouseEvent); + + if (ismouse) { + return; + } for (NSTouch* touch in touches) { if ([touch phase] != NSTouchPhaseBegan) { @@ -1093,8 +1089,7 @@ } } if (existingTouchCount == 0) { - const BOOL ismouse = ([theEvent subtype] == NSEventSubtypeMouseEvent); - const SDL_TouchID touchID = ismouse ? SDL_MOUSE_TOUCHID : (SDL_TouchID)(intptr_t)[[touches anyObject] device]; + const SDL_TouchID touchID = (SDL_TouchID)(intptr_t)[[touches anyObject] device]; int numFingers = SDL_GetNumTouchFingers(touchID); DLog("Reset Lost Fingers: %d", numFingers); for (--numFingers; numFingers >= 0; --numFingers) { @@ -1127,8 +1122,12 @@ const BOOL ismouse = ([theEvent subtype] == NSEventSubtypeMouseEvent); NSSet *touches = [theEvent touchesMatchingPhase:phase inView:nil]; + if (ismouse) { + return; + } + for (NSTouch *touch in touches) { - const SDL_TouchID touchId = ismouse ? SDL_MOUSE_TOUCHID : (SDL_TouchID)(intptr_t)[touch device]; + const SDL_TouchID touchId = (SDL_TouchID)(intptr_t)[touch device]; SDL_TouchDeviceType devtype = SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101202 /* Added in the 10.12.2 SDK. */