From 4d179b1db70661cf589727016901c444b0a617b5 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Sun, 26 Jul 2009 16:19:09 -0700 Subject: [PATCH] Remove global references to first window. Reviewed by me. --- AppKit/CPWindow/CPWindow.j | 2 +- AppKit/Platform/CPPlatform.j | 2 +- AppKit/Platform/CPPlatformWindow.j | 22 +++++++++++++++++++++- AppKit/Platform/DOM/CPDOMWindowBridge.j | 16 ++++++++-------- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index dcc7fc2c9..417f2fc9e 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -336,7 +336,7 @@ CPTexturedBackgroundWindowMask if (self) { - _platformWindow = window.firstWindow; + [self setPlatformWindow:[CPPlatformWindow primaryPlatformWindow]]; _isFullBridge = NO; _registeredDraggedTypes = [CPSet set]; diff --git a/AppKit/Platform/CPPlatform.j b/AppKit/Platform/CPPlatform.j index e7db6ddb1..8a75b53ab 100644 --- a/AppKit/Platform/CPPlatform.j +++ b/AppKit/Platform/CPPlatform.j @@ -21,7 +21,7 @@ #endif [CPPlatformString bootstrap]; - window.firstWindow = [[CPPlatformWindow alloc] _init]; + [CPPlatformWindow setPrimaryPlatformWindow:[[CPPlatformWindow alloc] _init]]; } @end diff --git a/AppKit/Platform/CPPlatformWindow.j b/AppKit/Platform/CPPlatformWindow.j index d9beb54e6..e0abdf130 100644 --- a/AppKit/Platform/CPPlatformWindow.j +++ b/AppKit/Platform/CPPlatformWindow.j @@ -5,13 +5,33 @@ #import "../CoreGraphics/CGGeometry.h" -var PlatformWindowClass = NULL; +var PlatformWindowClass = NULL, + PrimaryPlatformWindow = NULL; @implementation CPPlatformWindow : CPObject { CGRect _contentRect; } ++ (CPPlatformWindow)primaryPlatformWindow +{ + return PrimaryPlatformWindow; +} + ++ (void)setPrimaryPlatformWindow:(CPPlatformWindow)aPlatformWindow +{ + PrimaryPlatformWindow = aPlatformWindow; +} +/* ++ (BOOL)supportsMultipleWindows +{ +#if PLATFORM(BROWSER) + return YES; +#else + return NO; +#endif +} +*/ + (void)_setPlatformWindowClass:(Class)aClass { PlatformWindowClass = aClass; diff --git a/AppKit/Platform/DOM/CPDOMWindowBridge.j b/AppKit/Platform/DOM/CPDOMWindowBridge.j index f6afe1168..ac3352666 100644 --- a/AppKit/Platform/DOM/CPDOMWindowBridge.j +++ b/AppKit/Platform/DOM/CPDOMWindowBridge.j @@ -73,12 +73,12 @@ var CPDOMWindowGetFrame, - (CGRect)visibleFrame { - return [window.firstWindow usableContentFrame]; + return [[CPPlatformWindow primaryPlatformWindow] usableContentFrame]; } - (CPRect)contentBounds { - var contentBounds = [window.firstWindow contentRect]; + var contentBounds = [[CPPlatformWindow primaryPlatformWindow] contentRect]; contentBounds.origin = CGPointMake(0,0); return contentBounds; @@ -86,34 +86,34 @@ var CPDOMWindowGetFrame, - (CPArray)orderedWindowsAtLevel:(int)aLevel { - return [window.firstWindow orderedWindowsAtLevel:aLevel]; + return [[CPPlatformWindow primaryPlatformWindow] orderedWindowsAtLevel:aLevel]; } - (CPDOMWindowLayer)layerAtLevel:(int)aLevel create:(BOOL)aFlag { - return [window.firstWindow layerAtLevel:aLevel create:aFlag]; + return [[CPPlatformWindow primaryPlatformWindow] layerAtLevel:aLevel create:aFlag]; } - (void)order:(CPWindowOrderingMode)aPlace window:(CPWindow)aWindow relativeTo:(CPWindow)otherWindow { - return [window.firstWindow order:aPlace window:aWindow relativeTo:otherWindow]; + return [[CPPlatformWindow primaryPlatformWindow] order:aPlace window:aWindow relativeTo:otherWindow]; } /* @ignore */ - (id)_dragHitTest:(CPPoint)aPoint pasteboard:(CPPasteboard)aPasteboard { - return [window.firstWindow _dragHitTest:aPoint pasteboard:aPasteboard]; + return [[CPPlatformWindow primaryPlatformWindow] _dragHitTest:aPoint pasteboard:aPasteboard]; } /* @ignore */ - (void)_propagateCurrentDOMEvent:(BOOL)aFlag { - return [window.firstWindow _propagateCurrentDOMEvent:aFlag]; + return [[CPPlatformWindow primaryPlatformWindow] _propagateCurrentDOMEvent:aFlag]; } - (CPWindow)hitTest:(CPPoint)location { - return [window.firstWindow hitTest:location]; + return [[CPPlatformWindow primaryPlatformWindow] hitTest:location]; } @end