From fdd634ea0dae4bba67b65e55ba05cb81fdf0b2a2 Mon Sep 17 00:00:00 2001 From: "davidm%netscape.com" Date: Wed, 19 May 1999 03:03:48 +0000 Subject: [PATCH] Register and Unregister Windows with the window manager git-svn-id: svn://10.0.0.236/trunk@32238 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xpfe/appshell/src/nsAppShellService.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/mozilla/xpfe/appshell/src/nsAppShellService.cpp b/mozilla/xpfe/appshell/src/nsAppShellService.cpp index d7bdf2bcabb..02d5dd5ed19 100644 --- a/mozilla/xpfe/appshell/src/nsAppShellService.cpp +++ b/mozilla/xpfe/appshell/src/nsAppShellService.cpp @@ -32,6 +32,8 @@ #include "nsIWebShellWindow.h" #include "nsWebShellWindow.h" +#include "nsIWindowMediator.h" + #include "nsIAppShellComponent.h" #include "nsIRegistry.h" #include "nsIEnumerator.h" @@ -65,8 +67,10 @@ static NS_DEFINE_IID(kPICSCID, NS_PICS_CID); static NS_DEFINE_IID(kAppShellCID, NS_APPSHELL_CID); static NS_DEFINE_IID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID); static NS_DEFINE_IID(kCScriptNameSetRegistryCID, NS_SCRIPT_NAMESET_REGISTRY_CID); +static NS_DEFINE_CID(kWindowMediatorCID, NS_WINDOWMEDIATOR_CID); static NS_DEFINE_IID(kMetaCharsetCID, NS_META_CHARSET_CID); + /* Define Interface IDs */ static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); @@ -75,6 +79,7 @@ static NS_DEFINE_IID(kIAppShellServiceIID, NS_IAPPSHELL_SERVICE_IID); static NS_DEFINE_IID(kIAppShellIID, NS_IAPPSHELL_IID); static NS_DEFINE_IID(kIWebShellWindowIID, NS_IWEBSHELL_WINDOW_IID); static NS_DEFINE_IID(kIScriptNameSetRegistryIID, NS_ISCRIPTNAMESETREGISTRY_IID); +static NS_DEFINE_IID(kIWindowMediatorIID,NS_IWINDOWMEDIATOR_IID); static NS_DEFINE_IID(kIMetaCharsetServiceIID, NS_IMETA_CHARSET_SERVICE_IID); @@ -586,6 +591,13 @@ nsAppShellService::RegisterTopLevelWindow(nsIWebShellWindow* aWindow) if (NS_SUCCEEDED(rv)) { mWindowList->AppendElement(wsc); NS_RELEASE(wsc); + + nsIWindowMediator* service; + if (NS_SUCCEEDED(nsServiceManager::GetService(kWindowMediatorCID, kIWindowMediatorIID, (nsISupports**) &service ) ) ) + { + service->RegisterWindow( aWindow); + nsServiceManager::ReleaseService(kWindowMediatorCID, service); + } } return rv; } @@ -594,6 +606,13 @@ nsAppShellService::RegisterTopLevelWindow(nsIWebShellWindow* aWindow) NS_IMETHODIMP nsAppShellService::UnregisterTopLevelWindow(nsIWebShellWindow* aWindow) { + nsIWindowMediator* service; + if (NS_SUCCEEDED(nsServiceManager::GetService(kWindowMediatorCID, kIWindowMediatorIID, (nsISupports**) &service ) ) ) + { + service->RegisterWindow( aWindow); + nsServiceManager::ReleaseService(kWindowMediatorCID, service); + } + nsresult rv; nsIWebShellContainer* wsc; @@ -616,7 +635,7 @@ NS_EXPORT nsresult NS_NewAppShellService(nsIAppShellService** aResult) if (nsnull == aResult) { return NS_ERROR_NULL_POINTER; } - + *aResult = new nsAppShellService(); if (nsnull == *aResult) { return NS_ERROR_OUT_OF_MEMORY;