diff --git a/src/video/cocoa/SDL_cocoamouse.m b/src/video/cocoa/SDL_cocoamouse.m index 82bdc48b3..aa753fc12 100644 --- a/src/video/cocoa/SDL_cocoamouse.m +++ b/src/video/cocoa/SDL_cocoamouse.m @@ -316,7 +316,7 @@ Cocoa_GetGlobalMouseState(int *x, int *y) for (NSScreen *screen in [NSScreen screens]) { NSRect frame = [screen frame]; - if (NSPointInRect(cocoaLocation, frame)) { + if (NSMouseInRect(cocoaLocation, frame, NO)) { *x = (int) cocoaLocation.x; *y = (int) ((frame.origin.y + frame.size.height) - cocoaLocation.y); break; @@ -398,7 +398,7 @@ Cocoa_HandleMouseEvent(_THIS, NSEvent *event) /* Ignore events that aren't inside the client area (i.e. title bar.) */ if ([event window]) { NSRect windowRect = [[[event window] contentView] frame]; - if (!NSPointInRect([event locationInWindow], windowRect)) { + if (!NSMouseInRect([event locationInWindow], windowRect, NO)) { return; } } diff --git a/src/video/cocoa/SDL_cocoamousetap.m b/src/video/cocoa/SDL_cocoamousetap.m index f1bd0e8d2..2075e2c0f 100644 --- a/src/video/cocoa/SDL_cocoamousetap.m +++ b/src/video/cocoa/SDL_cocoamousetap.m @@ -96,7 +96,7 @@ Cocoa_MouseTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event eventLocation = CGEventGetUnflippedLocation(event); windowRect = [nswindow contentRectForFrameRect:[nswindow frame]]; - if (!NSPointInRect(NSPointFromCGPoint(eventLocation), windowRect)) { + if (!NSMouseInRect(NSPointFromCGPoint(eventLocation), windowRect, NO)) { /* This is in CGs global screenspace coordinate system, which has a * flipped Y. @@ -109,10 +109,10 @@ Cocoa_MouseTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event newLocation.x = NSMaxX(windowRect) - 1.0; } - if (eventLocation.y < NSMinY(windowRect)) { + if (eventLocation.y <= NSMinY(windowRect)) { newLocation.y -= (NSMinY(windowRect) - eventLocation.y + 1); - } else if (eventLocation.y >= NSMaxY(windowRect)) { - newLocation.y += (eventLocation.y - NSMaxY(windowRect) + 1); + } else if (eventLocation.y > NSMaxY(windowRect)) { + newLocation.y += (eventLocation.y - NSMaxY(windowRect)); } CGWarpMouseCursorPosition(newLocation); diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index 0c89a4659..4435d8dd0 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -839,14 +839,7 @@ SetWindowStyle(SDL_Window * window, unsigned int style) /* Ignore events that aren't inside the client area (i.e. title bar.) */ if ([theEvent window]) { NSRect windowRect = [[[theEvent window] contentView] frame]; - - /* add one to size, since NSPointInRect is exclusive of the bottom - edges, which mean it misses the top of the window by one pixel - (as the origin is the bottom left). */ - windowRect.size.width += 1; - windowRect.size.height += 1; - - if (!NSPointInRect([theEvent locationInWindow], windowRect)) { + if (!NSMouseInRect([theEvent locationInWindow], windowRect, NO)) { return; } }