Cocoa: ignore mouseDown events in a window's titlebar.
authorRyan C. Gordon
Sun, 31 May 2015 00:50:30 -0400
changeset 9685525f13ccf27f
parent 9684 c7db25205399
child 9686 d84e21b0b0ba
Cocoa: ignore mouseDown events in a window's titlebar.

These events accidentally slipping in sometimes appears to be a bug (or
maybe new behavior) in 10.10, as previous versions of Mac OS X don't appear
to ever trigger this.

Thanks to Paulo Marques for pointing out the fix on the SDL mailing list!

Fixes Bugzilla #2842 (again).
src/video/cocoa/SDL_cocoawindow.m
     1.1 --- a/src/video/cocoa/SDL_cocoawindow.m	Fri May 29 22:24:38 2015 +0200
     1.2 +++ b/src/video/cocoa/SDL_cocoawindow.m	Sun May 31 00:50:30 2015 -0400
     1.3 @@ -751,6 +751,14 @@
     1.4  {
     1.5      int button;
     1.6  
     1.7 +    /* Ignore events that aren't inside the client area (i.e. title bar.) */
     1.8 +    if ([theEvent window]) {
     1.9 +        const NSRect windowRect = [[[theEvent window] contentView] frame];
    1.10 +        if (!NSPointInRect([theEvent locationInWindow], windowRect)) {
    1.11 +            return;
    1.12 +        }
    1.13 +    }
    1.14 +
    1.15      if ([self processHitTest:theEvent]) {
    1.16          return;  /* dragging, drop event. */
    1.17      }