mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-05 02:13:40 +00:00
Fix for setIgnoresMouseEvents: in CPWindow.
[#195 state:resolved]. Reviewed by me.
This commit is contained in:
@@ -260,6 +260,7 @@ var CPWindowSaveImage = nil,
|
||||
CPString _title;
|
||||
|
||||
BOOL _acceptsMouseMovedEvents;
|
||||
BOOL _ignoresMouseEvents;
|
||||
|
||||
CPWindowController _windowController;
|
||||
|
||||
@@ -927,6 +928,16 @@ CPTexturedBackgroundWindowMask
|
||||
_acceptsMouseMovedEvents = shouldAcceptMouseMovedEvents;
|
||||
}
|
||||
|
||||
- (BOOL)ignoresMouseEvents
|
||||
{
|
||||
return _ignoresMouseEvents;
|
||||
}
|
||||
|
||||
- (void)setIgnoresMouseEvents:(BOOL)shouldIgnoreMouseEvents
|
||||
{
|
||||
_ignoresMouseEvents = shouldIgnoreMouseEvents;
|
||||
}
|
||||
|
||||
// Managing Titles
|
||||
|
||||
/*!
|
||||
|
||||
@@ -223,6 +223,16 @@ var CPDOMWindowGetFrame,
|
||||
return CPRectCreateCopy(_contentBounds);
|
||||
}
|
||||
|
||||
- (CPArray)orderedWindowsAtLevel:(int)aLevel
|
||||
{
|
||||
var layer = [self layerAtLevel:aLevel create:NO];
|
||||
|
||||
if (!layer)
|
||||
return [];
|
||||
|
||||
return [layer orderedWindows];
|
||||
}
|
||||
|
||||
- (CPDOMWindowLayer)layerAtLevel:(int)aLevel create:(BOOL)aFlag
|
||||
{
|
||||
var layer = [_windowLayers objectForKey:aLevel];
|
||||
@@ -326,8 +336,12 @@ var CPDOMWindowGetFrame,
|
||||
windowCount = windows.length;
|
||||
|
||||
while (windowCount-- && !theWindow)
|
||||
if (CPRectContainsPoint(windows[windowCount]._frame, location))
|
||||
theWindow = windows[windowCount];
|
||||
{
|
||||
var candidateWindow = windows[windowCount];
|
||||
|
||||
if (!candidateWindow._ignoresMouseEvents && CGRectContainsPoint(candidateWindow._frame, location))
|
||||
theWindow = candidateWindow;
|
||||
}
|
||||
}
|
||||
|
||||
return theWindow;
|
||||
|
||||
@@ -116,4 +116,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (CPArray)orderedWindows
|
||||
{
|
||||
return _windows;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user