diff --git a/ChangeLog b/ChangeLog index ab65f0b76..85a86eec3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ +2012-10-14 Doug Simons + + * Source/GSDragView.m: Ignore any window that ignoresMouseEvents when dragging. + 2012-10-08 Doug Simons - * NSWindow.m: Center on the main screen if window is off screen. + * Source/NSWindow.m: Center on the main screen if window is off screen. 2012-09-04 Jonathan Gillaspie diff --git a/Source/GSDragView.m b/Source/GSDragView.m index 76ec85a22..49fd4f203 100644 --- a/Source/GSDragView.m +++ b/Source/GSDragView.m @@ -360,13 +360,18 @@ static GSDragView *sharedDragView = nil; windowRef: (int*)mouseWindowRef { int win; - - *mouseWindowRef = 0; - win = [GSServerForWindow(_window) findWindowAt: mouseLocation - windowRef: mouseWindowRef - excluding: [_window windowNumber]]; - - return GSWindowWithNumber(win); + + NSEnumerator *winEnum = [[GSServerForWindow(_window) windowlist] objectEnumerator]; + NSNumber *winNum = nil; + while ((winNum = [winEnum nextObject])) { + NSWindow *window = GSWindowWithNumber([winNum intValue]); + NSRect frame = [window frame]; + if (window != _window && NSPointInRect(mouseLocation, frame) && ![window ignoresMouseEvents]) + { + return window; + } + } + return nil; } @end