You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ms...@apache.org on 2021/11/03 20:31:04 UTC

[openoffice] branch trunk updated: Fixed typos, removed whitespace

This is an automated email from the ASF dual-hosted git repository.

mseidel pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 124483a  Fixed typos, removed whitespace
124483a is described below

commit 124483a353bd96cd81c84b9ddbe78ff4bf5efad3
Author: mseidel <ms...@apache.org>
AuthorDate: Wed Nov 3 21:30:41 2021 +0100

    Fixed typos, removed whitespace
---
 main/sd/source/ui/view/ViewShellImplementation.cxx |  440 ++---
 main/sd/source/ui/view/ViewShellManager.cxx        | 1944 ++++++++++----------
 2 files changed, 1192 insertions(+), 1192 deletions(-)

diff --git a/main/sd/source/ui/view/ViewShellImplementation.cxx b/main/sd/source/ui/view/ViewShellImplementation.cxx
index 7eb6cc4..2d13bc8 100644
--- a/main/sd/source/ui/view/ViewShellImplementation.cxx
+++ b/main/sd/source/ui/view/ViewShellImplementation.cxx
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -7,16 +7,16 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
- * 
+ *
  *************************************************************/
 
 
@@ -69,13 +69,13 @@ using ::sd::framework::FrameworkHelper;
 namespace sd {
 
 ViewShell::Implementation::Implementation (ViewShell& rViewShell)
-    : mbIsShowingUIControls(false),
-      mbIsMainViewShell(false),
-      mbIsInitialized(false),
-      mbArrangeActive(false),
-      mpSubShellFactory(),
-      mpUpdateLockForMouse(),
-      mrViewShell(rViewShell)
+	: mbIsShowingUIControls(false),
+	  mbIsMainViewShell(false),
+	  mbIsInitialized(false),
+	  mbArrangeActive(false),
+	  mpSubShellFactory(),
+	  mpUpdateLockForMouse(),
+	  mrViewShell(rViewShell)
 {
 }
 
@@ -84,114 +84,114 @@ ViewShell::Implementation::Implementation (ViewShell& rViewShell)
 
 ViewShell::Implementation::~Implementation (void)
 {
-    if ( ! mpUpdateLockForMouse.expired())
-    {
-        ::boost::shared_ptr<ToolBarManagerLock> pLock(mpUpdateLockForMouse);
-        if (pLock.get() != NULL)
-        {
-            // Force the ToolBarManagerLock to be released even when the
-            // IsUICaptured() returns <TRUE/>.
-            pLock->Release(true);
-        }
-    }
+	if ( ! mpUpdateLockForMouse.expired())
+	{
+		::boost::shared_ptr<ToolBarManagerLock> pLock(mpUpdateLockForMouse);
+		if (pLock.get() != NULL)
+		{
+			// Force the ToolBarManagerLock to be released even when the
+			// IsUICaptured() returns <TRUE/>.
+			pLock->Release(true);
+		}
+	}
 }
 
 
 
 
 void ViewShell::Implementation::ProcessModifyPageSlot (
-    SfxRequest& rRequest,
-    SdPage* pCurrentPage,
-    PageKind ePageKind)
+	SfxRequest& rRequest,
+	SdPage* pCurrentPage,
+	PageKind ePageKind)
 {
-    SdDrawDocument* pDocument = mrViewShell.GetDoc();
-    SdrLayerAdmin& rLayerAdmin = pDocument->GetLayerAdmin();
-    sal_uInt8 aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
-    sal_uInt8 aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
-    SetOfByte aVisibleLayers;
-    sal_Bool bHandoutMode = sal_False;
-    SdPage* pHandoutMPage = NULL;
-    String aNewName;
-
-    // #95981#
-    String aOldName;
-
-    AutoLayout aNewAutoLayout;
-
-    sal_Bool bBVisible;
-    sal_Bool bBObjsVisible;
-    const SfxItemSet* pArgs = rRequest.GetArgs();
-
-    if (pCurrentPage != NULL && pCurrentPage->TRG_HasMasterPage())
-        aVisibleLayers = pCurrentPage->TRG_GetMasterPageVisibleLayers();
-    else
-        aVisibleLayers.SetAll();
-
-    do
-    {
-        if (pCurrentPage == NULL)
-            break;
-
-        if (!pArgs || pArgs->Count() == 1 || pArgs->Count() == 2 )
-        {
-            if (pArgs && pArgs->Count() == 2)
-            {
-                // We have been called with a request that contains two
-                // arguments.  One was used as preselected layout in a
-                // dialog.  We could select that layout in the
-                // layout panel instead.
-                /*
-                    SFX_REQUEST_ARG (rRequest, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, sal_False);
-                    eNewAutoLayout = (AutoLayout) pNewAutoLayout->GetValue
-                    ();
-                */
-            }
-
-            // Make the layout menu visible in the tool pane.
-            sfx2::sidebar::Sidebar::ShowPanel(
-                rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ImpressLayoutsPanel")),
-                mrViewShell.GetViewFrame()->GetFrame().GetFrameInterface());
-            break;
-        }
-        else if (pArgs->Count() == 4)
-        {
-            SFX_REQUEST_ARG (rRequest, pNewName, SfxStringItem, ID_VAL_PAGENAME, sal_False);
-            SFX_REQUEST_ARG (rRequest, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, sal_False);
-            SFX_REQUEST_ARG (rRequest, pBVisible, SfxBoolItem, ID_VAL_ISPAGEBACK, sal_False);
-            SFX_REQUEST_ARG (rRequest, pBObjsVisible, SfxBoolItem, ID_VAL_ISPAGEOBJ, sal_False);
-            AutoLayout aLayout ((AutoLayout)pNewAutoLayout->GetValue ());
-            if (aLayout >= AUTOLAYOUT__START
-                && aLayout < AUTOLAYOUT__END)
-            {
-                aNewName		= pNewName->GetValue ();
-                aNewAutoLayout = (AutoLayout) pNewAutoLayout->GetValue ();
-                bBVisible		= pBVisible->GetValue ();
-                bBObjsVisible	= pBObjsVisible->GetValue ();
-            }
-            else
-            {
-                StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-                rRequest.Ignore ();
-                break;
-            }
-            if (ePageKind == PK_HANDOUT)
-            {
-                bHandoutMode = sal_True;
-                pHandoutMPage = pDocument->GetMasterSdPage(0, PK_HANDOUT);
-            }
-        }
-        else
-        {
-            StarBASIC::FatalError (SbERR_WRONG_ARGS);
-            rRequest.Ignore ();
-            break;
-        }
-
-        SdPage* pUndoPage =
-            bHandoutMode ? pHandoutMPage : pCurrentPage;
-
-        ::svl::IUndoManager* pUndoManager = mrViewShell.GetDocSh()->GetUndoManager();
-        DBG_ASSERT(pUndoManager, "No UNDO MANAGER ?!?");
+	SdDrawDocument* pDocument = mrViewShell.GetDoc();
+	SdrLayerAdmin& rLayerAdmin = pDocument->GetLayerAdmin();
+	sal_uInt8 aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
+	sal_uInt8 aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
+	SetOfByte aVisibleLayers;
+	sal_Bool bHandoutMode = sal_False;
+	SdPage* pHandoutMPage = NULL;
+	String aNewName;
+
+	// #95981#
+	String aOldName;
+
+	AutoLayout aNewAutoLayout;
+
+	sal_Bool bBVisible;
+	sal_Bool bBObjsVisible;
+	const SfxItemSet* pArgs = rRequest.GetArgs();
+
+	if (pCurrentPage != NULL && pCurrentPage->TRG_HasMasterPage())
+		aVisibleLayers = pCurrentPage->TRG_GetMasterPageVisibleLayers();
+	else
+		aVisibleLayers.SetAll();
+
+	do
+	{
+		if (pCurrentPage == NULL)
+			break;
+
+		if (!pArgs || pArgs->Count() == 1 || pArgs->Count() == 2 )
+		{
+			if (pArgs && pArgs->Count() == 2)
+			{
+				// We have been called with a request that contains two
+				// arguments. One was used as preselected layout in a
+				// dialog. We could select that layout in the
+				// layout panel instead.
+				/*
+					SFX_REQUEST_ARG (rRequest, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, sal_False);
+					eNewAutoLayout = (AutoLayout) pNewAutoLayout->GetValue
+					();
+				*/
+			}
+
+			// Make the layout menu visible in the tool pane.
+			sfx2::sidebar::Sidebar::ShowPanel(
+				rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ImpressLayoutsPanel")),
+				mrViewShell.GetViewFrame()->GetFrame().GetFrameInterface());
+			break;
+		}
+		else if (pArgs->Count() == 4)
+		{
+			SFX_REQUEST_ARG (rRequest, pNewName, SfxStringItem, ID_VAL_PAGENAME, sal_False);
+			SFX_REQUEST_ARG (rRequest, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, sal_False);
+			SFX_REQUEST_ARG (rRequest, pBVisible, SfxBoolItem, ID_VAL_ISPAGEBACK, sal_False);
+			SFX_REQUEST_ARG (rRequest, pBObjsVisible, SfxBoolItem, ID_VAL_ISPAGEOBJ, sal_False);
+			AutoLayout aLayout ((AutoLayout)pNewAutoLayout->GetValue ());
+			if (aLayout >= AUTOLAYOUT__START
+				&& aLayout < AUTOLAYOUT__END)
+			{
+				aNewName		= pNewName->GetValue ();
+				aNewAutoLayout	= (AutoLayout) pNewAutoLayout->GetValue ();
+				bBVisible		= pBVisible->GetValue ();
+				bBObjsVisible	= pBObjsVisible->GetValue ();
+			}
+			else
+			{
+				StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+				rRequest.Ignore ();
+				break;
+			}
+			if (ePageKind == PK_HANDOUT)
+			{
+				bHandoutMode = sal_True;
+				pHandoutMPage = pDocument->GetMasterSdPage(0, PK_HANDOUT);
+			}
+		}
+		else
+		{
+			StarBASIC::FatalError (SbERR_WRONG_ARGS);
+			rRequest.Ignore ();
+			break;
+		}
+
+		SdPage* pUndoPage =
+			bHandoutMode ? pHandoutMPage : pCurrentPage;
+
+		::svl::IUndoManager* pUndoManager = mrViewShell.GetDocSh()->GetUndoManager();
+		DBG_ASSERT(pUndoManager, "No UNDO MANAGER ?!?");
 
 		if( pUndoManager )
 		{
@@ -201,8 +201,8 @@ void ViewShell::Implementation::ProcessModifyPageSlot (
 				pDocument, pUndoPage, aNewName, aNewAutoLayout, bBVisible, bBObjsVisible);
 			pUndoManager->AddUndoAction(pAction);
 
-			// Clear the selection because the selectec object may be removed as
-			// a result of the ssignment of the layout.
+			// Clear the selection because the selected object may be removed as
+			// a result of the assignment of the layout.
 			mrViewShell.GetDrawView()->UnmarkAll();
 
 			if (!bHandoutMode)
@@ -247,61 +247,61 @@ void ViewShell::Implementation::ProcessModifyPageSlot (
 			pUndoManager->LeaveListAction();
 
 			pDocument->SetChanged(bSetModified);
-        }
-    }
-    while (false);
+		}
+	}
+	while (false);
 
-    mrViewShell.Cancel();
-    rRequest.Done ();
+	mrViewShell.Cancel();
+	rRequest.Done ();
 }
 
 void ViewShell::Implementation::AssignLayout ( SfxRequest& rRequest, PageKind ePageKind )
 {
-    const SfxUInt32Item* pWhatPage = static_cast< const SfxUInt32Item*  > ( rRequest.GetArg( ID_VAL_WHATPAGE, sal_False, TYPE(SfxUInt32Item) ) );
-    const SfxUInt32Item* pWhatLayout = static_cast< const SfxUInt32Item*  > ( rRequest.GetArg( ID_VAL_WHATLAYOUT, sal_False, TYPE(SfxUInt32Item) ) );
+	const SfxUInt32Item* pWhatPage = static_cast< const SfxUInt32Item* > ( rRequest.GetArg( ID_VAL_WHATPAGE, sal_False, TYPE(SfxUInt32Item) ) );
+	const SfxUInt32Item* pWhatLayout = static_cast< const SfxUInt32Item* > ( rRequest.GetArg( ID_VAL_WHATLAYOUT, sal_False, TYPE(SfxUInt32Item) ) );
 
-    SdDrawDocument* pDocument = mrViewShell.GetDoc();
+	SdDrawDocument* pDocument = mrViewShell.GetDoc();
 	if( !pDocument )
 		return;
 
-    SdPage* pPage = 0;
-    if( pWhatPage )
-    {
+	SdPage* pPage = 0;
+	if( pWhatPage )
+	{
 		pPage = pDocument->GetSdPage(static_cast<sal_uInt16>(pWhatPage->GetValue()), ePageKind);
-    }
-    
-    if( pPage == 0 )
-        pPage = mrViewShell.getCurrentPage();
-
-    if( pPage )
-    {
-        AutoLayout eLayout = pPage->GetAutoLayout();
-
-        if( pWhatLayout )
-            eLayout = static_cast< AutoLayout >( pWhatLayout->GetValue() );
-            
-        // Transform the given request into the four argument form that is
-        // understood by ProcessModifyPageSlot().
-        SdrLayerAdmin& rLayerAdmin (mrViewShell.GetViewShellBase().GetDocument()->GetLayerAdmin());
-        sal_uInt8 aBackground (rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False));
-        sal_uInt8 aBackgroundObject (rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False));
-
-        SetOfByte aVisibleLayers;
-		
+	}
+
+	if( pPage == 0 )
+		pPage = mrViewShell.getCurrentPage();
+
+	if( pPage )
+	{
+		AutoLayout eLayout = pPage->GetAutoLayout();
+
+		if( pWhatLayout )
+			eLayout = static_cast< AutoLayout >( pWhatLayout->GetValue() );
+
+		// Transform the given request into the four argument form that is
+		// understood by ProcessModifyPageSlot().
+		SdrLayerAdmin& rLayerAdmin (mrViewShell.GetViewShellBase().GetDocument()->GetLayerAdmin());
+		sal_uInt8 aBackground (rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False));
+		sal_uInt8 aBackgroundObject (rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False));
+
+		SetOfByte aVisibleLayers;
+
 		if( pPage->GetPageKind() == PK_HANDOUT )
 			aVisibleLayers.SetAll();
 		else
 			aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
 
 		SfxRequest aRequest (mrViewShell.GetViewShellBase().GetViewFrame(), SID_MODIFYPAGE);
-        aRequest.AppendItem(SfxStringItem (ID_VAL_PAGENAME, pPage->GetName()));
-        aRequest.AppendItem(SfxUInt32Item (ID_VAL_WHATLAYOUT, eLayout));
-        aRequest.AppendItem(SfxBoolItem(ID_VAL_ISPAGEBACK, aVisibleLayers.IsSet(aBackground)));
-        aRequest.AppendItem(SfxBoolItem(ID_VAL_ISPAGEOBJ, aVisibleLayers.IsSet(aBackgroundObject)));
-
-        // Forward the call with the new arguments.
-        ProcessModifyPageSlot( aRequest, pPage, pPage->GetPageKind());
-    }
+		aRequest.AppendItem(SfxStringItem (ID_VAL_PAGENAME, pPage->GetName()));
+		aRequest.AppendItem(SfxUInt32Item (ID_VAL_WHATLAYOUT, eLayout));
+		aRequest.AppendItem(SfxBoolItem(ID_VAL_ISPAGEBACK, aVisibleLayers.IsSet(aBackground)));
+		aRequest.AppendItem(SfxBoolItem(ID_VAL_ISPAGEOBJ, aVisibleLayers.IsSet(aBackgroundObject)));
+
+		// Forward the call with the new arguments.
+		ProcessModifyPageSlot( aRequest, pPage, pPage->GetPageKind());
+	}
 }
 
 
@@ -309,33 +309,33 @@ void ViewShell::Implementation::AssignLayout ( SfxRequest& rRequest, PageKind eP
 
 sal_uInt16 ViewShell::Implementation::GetViewId (void)
 {
-    switch (mrViewShell.GetShellType())
-    {
-        case ViewShell::ST_IMPRESS:
-        case ViewShell::ST_NOTES:
-        case ViewShell::ST_HANDOUT:
-            return IMPRESS_FACTORY_ID;
-
-        case ViewShell::ST_DRAW:
-            return DRAW_FACTORY_ID;
-            
-        case ViewShell::ST_OUTLINE:
-            return OUTLINE_FACTORY_ID;
-
-        case ViewShell::ST_SLIDE_SORTER:
-            return SLIDE_SORTER_FACTORY_ID;
-
-        case ViewShell::ST_PRESENTATION:
-            return PRESENTATION_FACTORY_ID;
-
-        // Since we have to return a view id for every possible shell type
-        // and there is not (yet) a proper ViewShellBase sub class for the
-        // remaining types we chose the Impress factory as a fall back.
-        case ViewShell::ST_SIDEBAR:
-        case ViewShell::ST_NONE:
-        default:
-            return IMPRESS_FACTORY_ID;
-    }
+	switch (mrViewShell.GetShellType())
+	{
+		case ViewShell::ST_IMPRESS:
+		case ViewShell::ST_NOTES:
+		case ViewShell::ST_HANDOUT:
+			return IMPRESS_FACTORY_ID;
+
+		case ViewShell::ST_DRAW:
+			return DRAW_FACTORY_ID;
+
+		case ViewShell::ST_OUTLINE:
+			return OUTLINE_FACTORY_ID;
+
+		case ViewShell::ST_SLIDE_SORTER:
+			return SLIDE_SORTER_FACTORY_ID;
+
+		case ViewShell::ST_PRESENTATION:
+			return PRESENTATION_FACTORY_ID;
+
+		// Since we have to return a view id for every possible shell type
+		// and there is not (yet) a proper ViewShellBase sub class for the
+		// remaining types we chose the Impress factory as a fall back.
+		case ViewShell::ST_SIDEBAR:
+		case ViewShell::ST_NONE:
+		default:
+			return IMPRESS_FACTORY_ID;
+	}
 }
 
 
@@ -343,12 +343,12 @@ sal_uInt16 ViewShell::Implementation::GetViewId (void)
 
 SvxIMapDlg* ViewShell::Implementation::GetImageMapDialog (void)
 {
-    SvxIMapDlg* pDialog = NULL;
-    SfxChildWindow* pChildWindow = SfxViewFrame::Current()->GetChildWindow(
-        SvxIMapDlgChildWindow::GetChildWindowId());
-    if (pChildWindow != NULL)
-        pDialog = dynamic_cast<SvxIMapDlg*>(pChildWindow->GetWindow());
-    return pDialog;
+	SvxIMapDlg* pDialog = NULL;
+	SfxChildWindow* pChildWindow = SfxViewFrame::Current()->GetChildWindow(
+		SvxIMapDlgChildWindow::GetChildWindowId());
+	if (pChildWindow != NULL)
+		pDialog = dynamic_cast<SvxIMapDlg*>(pChildWindow->GetWindow());
+	return pDialog;
 }
 
 
@@ -356,33 +356,33 @@ SvxIMapDlg* ViewShell::Implementation::GetImageMapDialog (void)
 //===== ToolBarManagerLock ====================================================
 
 class ViewShell::Implementation::ToolBarManagerLock::Deleter { public:
-    void operator() (ToolBarManagerLock* pObject) { delete pObject; }
+	void operator() (ToolBarManagerLock* pObject) { delete pObject; }
 };
 
 ::boost::shared_ptr<ViewShell::Implementation::ToolBarManagerLock>
-    ViewShell::Implementation::ToolBarManagerLock::Create (
-        const ::boost::shared_ptr<ToolBarManager>& rpManager)
+	ViewShell::Implementation::ToolBarManagerLock::Create (
+		const ::boost::shared_ptr<ToolBarManager>& rpManager)
 {
-    ::boost::shared_ptr<ToolBarManagerLock> pLock (
-        new ViewShell::Implementation::ToolBarManagerLock(rpManager),
-        ViewShell::Implementation::ToolBarManagerLock::Deleter());
-    pLock->mpSelf = pLock;
-    return pLock;
+	::boost::shared_ptr<ToolBarManagerLock> pLock (
+		new ViewShell::Implementation::ToolBarManagerLock(rpManager),
+		ViewShell::Implementation::ToolBarManagerLock::Deleter());
+	pLock->mpSelf = pLock;
+	return pLock;
 }
 
 
 
 
 ViewShell::Implementation::ToolBarManagerLock::ToolBarManagerLock (
-    const ::boost::shared_ptr<ToolBarManager>& rpManager)
-    : mpLock(new ToolBarManager::UpdateLock(rpManager)),
-      maTimer()
+	const ::boost::shared_ptr<ToolBarManager>& rpManager)
+	: mpLock(new ToolBarManager::UpdateLock(rpManager)),
+	  maTimer()
 {
-    // Start a timer that will unlock the ToolBarManager update lock when
-    // that is not done explicitly by calling Release().
-    maTimer.SetTimeoutHdl(LINK(this,ToolBarManagerLock,TimeoutCallback));
-    maTimer.SetTimeout(100);
-    maTimer.Start();
+	// Start a timer that will unlock the ToolBarManager update lock when
+	// that is not done explicitly by calling Release().
+	maTimer.SetTimeoutHdl(LINK(this,ToolBarManagerLock,TimeoutCallback));
+	maTimer.SetTimeout(100);
+	maTimer.Start();
 }
 
 
@@ -390,17 +390,17 @@ ViewShell::Implementation::ToolBarManagerLock::ToolBarManagerLock (
 
 IMPL_LINK(ViewShell::Implementation::ToolBarManagerLock,TimeoutCallback,Timer*,EMPTYARG)
 {
-    // If possible then release the lock now.  Otherwise start the timer
-    // and try again later.
-    if (Application::IsUICaptured())
-    {
-        maTimer.Start();
-    }
-    else
-    {
-        mpSelf.reset();
-    }
-    return 0;
+	// If possible then release the lock now. Otherwise start the timer
+	// and try again later.
+	if (Application::IsUICaptured())
+	{
+		maTimer.Start();
+	}
+	else
+	{
+		mpSelf.reset();
+	}
+	return 0;
 }
 
 
@@ -408,12 +408,12 @@ IMPL_LINK(ViewShell::Implementation::ToolBarManagerLock,TimeoutCallback,Timer*,E
 
 void ViewShell::Implementation::ToolBarManagerLock::Release (bool bForce)
 {
-    // If possible then release the lock now.  Otherwise try again when the
-    // timer expires.
-    if (bForce || ! Application::IsUICaptured())
-    {
-        mpSelf.reset();
-    }
+	// If possible then release the lock now. Otherwise try again when the
+	// timer expires.
+	if (bForce || ! Application::IsUICaptured())
+	{
+		mpSelf.reset();
+	}
 }
 
 
@@ -421,7 +421,7 @@ void ViewShell::Implementation::ToolBarManagerLock::Release (bool bForce)
 
 ViewShell::Implementation::ToolBarManagerLock::~ToolBarManagerLock (void)
 {
-    mpLock.reset();
+	mpLock.reset();
 }
 
 } // end of namespace sd
diff --git a/main/sd/source/ui/view/ViewShellManager.cxx b/main/sd/source/ui/view/ViewShellManager.cxx
index d68a154..696d571 100644
--- a/main/sd/source/ui/view/ViewShellManager.cxx
+++ b/main/sd/source/ui/view/ViewShellManager.cxx
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -7,16 +7,16 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
- * 
+ *
  *************************************************************/
 
 
@@ -45,62 +45,62 @@ namespace sd {
 namespace {
 
 /** The ShellDescriptor class is used to shells together with their ids and
-    the factory that was used to create the shell.
+	the factory that was used to create the shell.
 
-    The shell pointer may be NULL.  In that case the shell is created on
-    demand by a factory.
+	The shell pointer may be NULL. In that case the shell is created on
+	demand by a factory.
 
-    The factory pointer may be NULL.  In that case the shell pointer is
-    given to the ViewShellManager.
+	The factory pointer may be NULL. In that case the shell pointer is
+	given to the ViewShellManager.
 
-    Shell pointer and factory pointer can but should not be NULL at the same
-    time.
+	Shell pointer and factory pointer can but should not be NULL at the same
+	time.
 */
 class ShellDescriptor {
 public:
-    SfxShell* mpShell;
-    ShellId mnId;
-    ViewShellManager::SharedShellFactory mpFactory;
-    bool mbIsListenerAddedToWindow;
-    
-    ShellDescriptor ();
-    ShellDescriptor (SfxShell* pShell, ShellId nId);
-    ShellDescriptor (const ShellDescriptor& rDescriptor);
-    ShellDescriptor& operator= (const ShellDescriptor& rDescriptor);
-    bool IsMainViewShell (void) const;
-    ::Window* GetWindow (void) const;
+	SfxShell* mpShell;
+	ShellId mnId;
+	ViewShellManager::SharedShellFactory mpFactory;
+	bool mbIsListenerAddedToWindow;
+
+	ShellDescriptor ();
+	ShellDescriptor (SfxShell* pShell, ShellId nId);
+	ShellDescriptor (const ShellDescriptor& rDescriptor);
+	ShellDescriptor& operator= (const ShellDescriptor& rDescriptor);
+	bool IsMainViewShell (void) const;
+	::Window* GetWindow (void) const;
 };
 
 
 
 
 /** This functor can be used to search for a shell in an STL container when the
-    shell pointer is given.
+	shell pointer is given.
 */
 class IsShell : public ::std::unary_function<ShellDescriptor,bool>
 {
 public:
-    IsShell (const SfxShell* pShell) : mpShell(pShell) {}
-    bool operator() (const ShellDescriptor& rDescriptor)
-    { return rDescriptor.mpShell == mpShell; }
+	IsShell (const SfxShell* pShell) : mpShell(pShell) {}
+	bool operator() (const ShellDescriptor& rDescriptor)
+	{ return rDescriptor.mpShell == mpShell; }
 private:
-    const SfxShell* mpShell;
+	const SfxShell* mpShell;
 };
 
 
 
 
 /** This functor can be used to search for a shell in an STL container when the
-    id of the shell is given.
+	id of the shell is given.
 */
 class IsId : public ::std::unary_function<ShellDescriptor,bool>
 {
 public:
-    IsId (ShellId nId) : mnId(nId) {}
-    bool operator() (const ShellDescriptor& rDescriptor)
-    { return rDescriptor.mnId == mnId; }
+	IsId (ShellId nId) : mnId(nId) {}
+	bool operator() (const ShellDescriptor& rDescriptor)
+	{ return rDescriptor.mnId == mnId; }
 private:
-    ShellId mnId;
+	ShellId mnId;
 };
 
 } // end of anonymous namespace
@@ -111,142 +111,142 @@ private:
 class ViewShellManager::Implementation
 {
 public:
-    Implementation (
-        ViewShellManager& rManager,
-        ViewShellBase& rBase);
-    ~Implementation (void);
-
-    void AddShellFactory (
-        const SfxShell* pViewShell, 
-        const SharedShellFactory& rpFactory);
-    void RemoveShellFactory (
-        const SfxShell* pViewShell, 
-        const SharedShellFactory& rpFactory);
-    void ActivateViewShell (
-        ViewShell* pViewShell);
-    void DeactivateViewShell (const ViewShell& rShell);
-    void ActivateShell (SfxShell& rShell);
-    void DeactivateShell (const SfxShell& rShell);
-    void ActivateShell (const ShellDescriptor& rDescriptor);
-    void SetFormShell (const ViewShell* pViewShell, FmFormShell* pFormShell, bool bAbove);
-    void ActivateSubShell (const SfxShell& rParentShell, ShellId nId);
-    void DeactivateSubShell (const SfxShell& rParentShell, ShellId nId);
-    void MoveSubShellToTop (const SfxShell& rParentShell, ShellId nId);
-    void MoveToTop (const SfxShell& rParentShell);
-    SfxShell* GetShell (ShellId nId) const;
-    SfxShell* GetTopShell (void) const;
-    void Shutdown (void);
-    void InvalidateAllSubShells (const SfxShell* pParentShell);
-
-    /** Remove all shells from the SFX stack above and including the given
-        shell.
-    */
-    void TakeShellsFromStack (const SfxShell* pShell);
-
-    class UpdateLock
-    {
-    public:
-        UpdateLock (Implementation& rImpl) : mrImpl(rImpl) {mrImpl.LockUpdate();}
-        ~UpdateLock (void) {mrImpl.UnlockUpdate();};
-    private:
-        Implementation& mrImpl;
-    };
-
-
-
-    /** Prevent updates of the shell stack.  While the sub shell manager is
-        locked it will update its internal data structures but not alter the
-        shell stack.  Use this method when there are several modifications
-        to the shell stack to prevent multiple rebuilds of the shell stack
-        and resulting broadcasts.
-    */
-    void LockUpdate (void);
-
-    /** Allow updates of the shell stack.  This method has to be called the
-        same number of times as LockUpdate() to really allow a rebuild of
-        the shell stack.
-    */
-    void UnlockUpdate (void);
+	Implementation (
+		ViewShellManager& rManager,
+		ViewShellBase& rBase);
+	~Implementation (void);
+
+	void AddShellFactory (
+		const SfxShell* pViewShell,
+		const SharedShellFactory& rpFactory);
+	void RemoveShellFactory (
+		const SfxShell* pViewShell,
+		const SharedShellFactory& rpFactory);
+	void ActivateViewShell (
+		ViewShell* pViewShell);
+	void DeactivateViewShell (const ViewShell& rShell);
+	void ActivateShell (SfxShell& rShell);
+	void DeactivateShell (const SfxShell& rShell);
+	void ActivateShell (const ShellDescriptor& rDescriptor);
+	void SetFormShell (const ViewShell* pViewShell, FmFormShell* pFormShell, bool bAbove);
+	void ActivateSubShell (const SfxShell& rParentShell, ShellId nId);
+	void DeactivateSubShell (const SfxShell& rParentShell, ShellId nId);
+	void MoveSubShellToTop (const SfxShell& rParentShell, ShellId nId);
+	void MoveToTop (const SfxShell& rParentShell);
+	SfxShell* GetShell (ShellId nId) const;
+	SfxShell* GetTopShell (void) const;
+	void Shutdown (void);
+	void InvalidateAllSubShells (const SfxShell* pParentShell);
+
+	/** Remove all shells from the SFX stack above and including the given
+		shell.
+	*/
+	void TakeShellsFromStack (const SfxShell* pShell);
+
+	class UpdateLock
+	{
+	public:
+		UpdateLock (Implementation& rImpl) : mrImpl(rImpl) {mrImpl.LockUpdate();}
+		~UpdateLock (void) {mrImpl.UnlockUpdate();};
+	private:
+		Implementation& mrImpl;
+	};
+
+
+
+	/** Prevent updates of the shell stack. While the sub shell manager is
+		locked it will update its internal data structures but not alter the
+		shell stack. Use this method when there are several modifications
+		to the shell stack to prevent multiple rebuilds of the shell stack
+		and resulting broadcasts.
+	*/
+	void LockUpdate (void);
+
+	/** Allow updates of the shell stack. This method has to be called the
+		same number of times as LockUpdate() to really allow a rebuild of
+		the shell stack.
+	*/
+	void UnlockUpdate (void);
 
 private:
-    ViewShellBase& mrBase;
-    mutable ::osl::Mutex maMutex;
-
-    class ShellHash{public: size_t operator()(const SfxShell* p) const { return (size_t)p;} };
-    typedef ::std::hash_multimap<const SfxShell*,SharedShellFactory,ShellHash>
-        FactoryList;
-    FactoryList maShellFactories;
-
-    /** List of the active view shells.  In order to create gather all shells
-        to put on the shell stack each view shell in this list is asked for
-        its sub-shells (typically toolbars).
-    */
-    typedef ::std::list<ShellDescriptor> ActiveShellList;
-    ActiveShellList maActiveViewShells;
-
-    typedef ::std::list<ShellDescriptor> SubShellSubList;
-    typedef ::std::hash_map<const SfxShell*,SubShellSubList,ShellHash> SubShellList;
-    SubShellList maActiveSubShells;
-    
-    /** In this member we remember what shells we have pushed on the shell
-        stack.
-    */
-    typedef ::std::vector<SfxShell*> ShellStack;
-    
-    int mnUpdateLockCount;
-
-    /** When this flag is set then the main view shell is always kept at the
-        top of the shell stack.
-    */
-    bool mbKeepMainViewShellOnTop;
-
-    /** The UpdateShellStack() method can be called recursively.  This flag
-        is used to communicate between different levels of invocation: if
-        the stack has been updated in an inner call the outer call can (has
-        to) stop and return immediately.
-    */
-    bool mbShellStackIsUpToDate;
-
-    SfxShell* mpFormShell;
-    const ViewShell* mpFormShellParent;
-    bool mbFormShellAboveParent;
-
-    SfxShell* mpTopShell;
-
-    void GatherActiveShells (ShellStack& rShellList);
-
-    void UpdateShellStack (void);
-    
-    void CreateShells (void);
-
-    /** This method rebuilds the stack of shells that are stacked upon the
-        view shell base.
-    */
-    void CreateTargetStack (ShellStack& rStack) const;
-
-    DECL_LINK(WindowEventHandler, VclWindowEvent*);
+	ViewShellBase& mrBase;
+	mutable ::osl::Mutex maMutex;
+
+	class ShellHash{public: size_t operator()(const SfxShell* p) const { return (size_t)p;} };
+	typedef ::std::hash_multimap<const SfxShell*,SharedShellFactory,ShellHash>
+		FactoryList;
+	FactoryList maShellFactories;
+
+	/** List of the active view shells. In order to create gather all shells
+		to put on the shell stack each view shell in this list is asked for
+		its sub-shells (typically toolbars).
+	*/
+	typedef ::std::list<ShellDescriptor> ActiveShellList;
+	ActiveShellList maActiveViewShells;
+
+	typedef ::std::list<ShellDescriptor> SubShellSubList;
+	typedef ::std::hash_map<const SfxShell*,SubShellSubList,ShellHash> SubShellList;
+	SubShellList maActiveSubShells;
+
+	/** In this member we remember what shells we have pushed on the shell
+		stack.
+	*/
+	typedef ::std::vector<SfxShell*> ShellStack;
+
+	int mnUpdateLockCount;
+
+	/** When this flag is set then the main view shell is always kept at the
+		top of the shell stack.
+	*/
+	bool mbKeepMainViewShellOnTop;
+
+	/** The UpdateShellStack() method can be called recursively. This flag
+		is used to communicate between different levels of invocation: if
+		the stack has been updated in an inner call the outer call can (has
+		to) stop and return immediately.
+	*/
+	bool mbShellStackIsUpToDate;
+
+	SfxShell* mpFormShell;
+	const ViewShell* mpFormShellParent;
+	bool mbFormShellAboveParent;
+
+	SfxShell* mpTopShell;
+
+	void GatherActiveShells (ShellStack& rShellList);
+
+	void UpdateShellStack (void);
+
+	void CreateShells (void);
+
+	/** This method rebuilds the stack of shells that are stacked upon the
+		view shell base.
+	*/
+	void CreateTargetStack (ShellStack& rStack) const;
+
+	DECL_LINK(WindowEventHandler, VclWindowEvent*);
 
 #ifdef VERBOSE
-    void DumpShellStack (const ShellStack& rStack);
-    void DumpSfxShellStack (void);
+	void DumpShellStack (const ShellStack& rStack);
+	void DumpSfxShellStack (void);
 #endif
 
-    /** To be called before a shell is taken fom the SFX shell stack.  This
-        method deactivates an active text editing to avoid problems with
-        undo managers.
-        Afterwards the Deactivate() of the shell is called.
-    */
-    void Deactivate (SfxShell* pShell);
-
-    ShellDescriptor CreateSubShell (
-        SfxShell* pShell,
-        ShellId nShellId,
-        ::Window* pParentWindow,
-        FrameView* pFrameView);
-    void DestroyViewShell (ShellDescriptor& rDescriptor);
-    void DestroySubShell (
-        const SfxShell& rViewShell,
-        const ShellDescriptor& rDescriptor);
+	/** To be called before a shell is taken from the SFX shell stack. This
+		method deactivates an active text editing to avoid problems with
+		undo managers.
+		Afterwards the Deactivate() of the shell is called.
+	*/
+	void Deactivate (SfxShell* pShell);
+
+	ShellDescriptor CreateSubShell (
+		SfxShell* pShell,
+		ShellId nShellId,
+		::Window* pParentWindow,
+		FrameView* pFrameView);
+	void DestroyViewShell (ShellDescriptor& rDescriptor);
+	void DestroySubShell (
+		const SfxShell& rViewShell,
+		const ShellDescriptor& rDescriptor);
 };
 
 
@@ -255,8 +255,8 @@ private:
 //===== ViewShellManager ======================================================
 
 ViewShellManager::ViewShellManager (ViewShellBase& rBase)
-    : mpImpl(new Implementation(*this,rBase)),
-      mbValid(true)
+	: mpImpl(new Implementation(*this,rBase)),
+	  mbValid(true)
 {
 }
 
@@ -271,22 +271,22 @@ ViewShellManager::~ViewShellManager (void)
 
 
 void ViewShellManager::AddSubShellFactory (
-    ViewShell* pViewShell, 
-    const SharedShellFactory& rpFactory)
+	ViewShell* pViewShell,
+	const SharedShellFactory& rpFactory)
 {
-    if (mbValid)
-        mpImpl->AddShellFactory(pViewShell, rpFactory);
+	if (mbValid)
+		mpImpl->AddShellFactory(pViewShell, rpFactory);
 }
 
 
 
 
 void ViewShellManager::RemoveSubShellFactory (
-    ViewShell* pViewShell, 
-    const SharedShellFactory& rpFactory)
+	ViewShell* pViewShell,
+	const SharedShellFactory& rpFactory)
 {
-    if (mbValid)
-        mpImpl->RemoveShellFactory(pViewShell, rpFactory);
+	if (mbValid)
+		mpImpl->RemoveShellFactory(pViewShell, rpFactory);
 }
 
 
@@ -294,8 +294,8 @@ void ViewShellManager::RemoveSubShellFactory (
 
 void ViewShellManager::ActivateViewShell (ViewShell* pViewShell)
 {
-    if (mbValid)
-        return mpImpl->ActivateViewShell(pViewShell);
+	if (mbValid)
+		return mpImpl->ActivateViewShell(pViewShell);
 }
 
 
@@ -303,31 +303,31 @@ void ViewShellManager::ActivateViewShell (ViewShell* pViewShell)
 
 void ViewShellManager::DeactivateViewShell (const ViewShell* pShell)
 {
-    if (mbValid && pShell!=NULL)
-        mpImpl->DeactivateViewShell(*pShell);
+	if (mbValid && pShell!=NULL)
+		mpImpl->DeactivateViewShell(*pShell);
 }
 
 
 
 
 void ViewShellManager::MoveSubShellToTop (
-    const ViewShell& rParentShell,
-    ShellId nId)
+	const ViewShell& rParentShell,
+	ShellId nId)
 {
-    if (mbValid)
-        mpImpl->MoveSubShellToTop(rParentShell, nId);
+	if (mbValid)
+		mpImpl->MoveSubShellToTop(rParentShell, nId);
 }
 
 
 
 
 void ViewShellManager::SetFormShell (
-    const ViewShell* pParentShell,
-    FmFormShell* pFormShell,
-    bool bAbove)
+	const ViewShell* pParentShell,
+	FmFormShell* pFormShell,
+	bool bAbove)
 {
-    if (mbValid)
-        mpImpl->SetFormShell(pParentShell,pFormShell,bAbove);
+	if (mbValid)
+		mpImpl->SetFormShell(pParentShell,pFormShell,bAbove);
 }
 
 
@@ -335,8 +335,8 @@ void ViewShellManager::SetFormShell (
 
 void ViewShellManager::ActivateSubShell (const ViewShell& rViewShell, ShellId nId)
 {
-    if (mbValid)
-        mpImpl->ActivateSubShell(rViewShell,nId);
+	if (mbValid)
+		mpImpl->ActivateSubShell(rViewShell,nId);
 }
 
 
@@ -344,8 +344,8 @@ void ViewShellManager::ActivateSubShell (const ViewShell& rViewShell, ShellId nI
 
 void ViewShellManager::DeactivateSubShell (const ViewShell& rViewShell, ShellId nId)
 {
-    if (mbValid)
-        mpImpl->DeactivateSubShell(rViewShell,nId);
+	if (mbValid)
+		mpImpl->DeactivateSubShell(rViewShell,nId);
 }
 
 
@@ -353,8 +353,8 @@ void ViewShellManager::DeactivateSubShell (const ViewShell& rViewShell, ShellId
 
 void ViewShellManager::InvalidateAllSubShells (ViewShell* pViewShell)
 {
-    if (mbValid)
-        mpImpl->InvalidateAllSubShells(pViewShell);
+	if (mbValid)
+		mpImpl->InvalidateAllSubShells(pViewShell);
 }
 
 
@@ -362,8 +362,8 @@ void ViewShellManager::InvalidateAllSubShells (ViewShell* pViewShell)
 
 void ViewShellManager::ActivateShell (SfxShell* pShell)
 {
-    if (mbValid && pShell!=NULL)
-        mpImpl->ActivateShell(*pShell);
+	if (mbValid && pShell!=NULL)
+		mpImpl->ActivateShell(*pShell);
 }
 
 
@@ -371,8 +371,8 @@ void ViewShellManager::ActivateShell (SfxShell* pShell)
 
 void ViewShellManager::DeactivateShell (const SfxShell* pShell)
 {
-    if (mbValid && pShell!=NULL)
-        mpImpl->DeactivateShell(*pShell);
+	if (mbValid && pShell!=NULL)
+		mpImpl->DeactivateShell(*pShell);
 }
 
 
@@ -380,8 +380,8 @@ void ViewShellManager::DeactivateShell (const SfxShell* pShell)
 
 void ViewShellManager::MoveToTop (const ViewShell& rParentShell)
 {
-    if (mbValid)
-        mpImpl->MoveToTop(rParentShell);
+	if (mbValid)
+		mpImpl->MoveToTop(rParentShell);
 }
 
 
@@ -389,10 +389,10 @@ void ViewShellManager::MoveToTop (const ViewShell& rParentShell)
 
 SfxShell* ViewShellManager::GetShell (ShellId nId) const
 {
-    if (mbValid)
-        return mpImpl->GetShell(nId);
-    else
-        return NULL;
+	if (mbValid)
+		return mpImpl->GetShell(nId);
+	else
+		return NULL;
 }
 
 
@@ -400,10 +400,10 @@ SfxShell* ViewShellManager::GetShell (ShellId nId) const
 
 SfxShell* ViewShellManager::GetTopShell (void) const
 {
-    if (mbValid)
-        return mpImpl->GetTopShell();
-    else
-        return NULL;
+	if (mbValid)
+		return mpImpl->GetTopShell();
+	else
+		return NULL;
 }
 
 
@@ -411,18 +411,18 @@ SfxShell* ViewShellManager::GetTopShell (void) const
 
 void ViewShellManager::Shutdown (void)
 {
-    if (mbValid)
-    {
-        mpImpl->Shutdown();
-        mbValid = false;
-    }
+	if (mbValid)
+	{
+		mpImpl->Shutdown();
+		mbValid = false;
+	}
 }
 
 
 
 void ViewShellManager::LockUpdate (void)
 {
-    mpImpl->LockUpdate();
+	mpImpl->LockUpdate();
 }
 
 
@@ -430,7 +430,7 @@ void ViewShellManager::LockUpdate (void)
 
 void ViewShellManager::UnlockUpdate (void)
 {
-    mpImpl->UnlockUpdate();
+	mpImpl->UnlockUpdate();
 }
 
 
@@ -439,21 +439,21 @@ void ViewShellManager::UnlockUpdate (void)
 //===== ViewShellManager::Implementation ======================================
 
 ViewShellManager::Implementation::Implementation (
-    ViewShellManager& rManager,
-    ViewShellBase& rBase)
-    : mrBase(rBase),
-      maMutex(),
-      maShellFactories(),
-      maActiveViewShells(),
-      mnUpdateLockCount(0),
-      mbKeepMainViewShellOnTop(false),
-      mbShellStackIsUpToDate(true),
-      mpFormShell(NULL),
-      mpFormShellParent(NULL),
-      mbFormShellAboveParent(true),
-      mpTopShell(NULL)
+	ViewShellManager& rManager,
+	ViewShellBase& rBase)
+	: mrBase(rBase),
+	  maMutex(),
+	  maShellFactories(),
+	  maActiveViewShells(),
+	  mnUpdateLockCount(0),
+	  mbKeepMainViewShellOnTop(false),
+	  mbShellStackIsUpToDate(true),
+	  mpFormShell(NULL),
+	  mpFormShellParent(NULL),
+	  mbFormShellAboveParent(true),
+	  mpTopShell(NULL)
 {
-    (void)rManager;
+	(void)rManager;
 }
 
 
@@ -461,48 +461,48 @@ ViewShellManager::Implementation::Implementation (
 
 ViewShellManager::Implementation::~Implementation (void)
 {
-    Shutdown();
+	Shutdown();
 }
 
 
 
 
 void ViewShellManager::Implementation::AddShellFactory (
-    const SfxShell* pViewShell,
-    const SharedShellFactory& rpFactory)
+	const SfxShell* pViewShell,
+	const SharedShellFactory& rpFactory)
 {
-    bool bAlreadyAdded (false);
-
-    // Check that the given factory has not already been added.
-    ::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
-        maShellFactories.equal_range(pViewShell));
-    for (FactoryList::const_iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
-        if (iFactory->second == rpFactory)
-        {
-            bAlreadyAdded = true;
-            break;
-        }
-
-    // Add the factory if it is not already present.
-    if ( ! bAlreadyAdded)
-        maShellFactories.insert(FactoryList::value_type(pViewShell, rpFactory));
+	bool bAlreadyAdded (false);
+
+	// Check that the given factory has not already been added.
+	::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
+		maShellFactories.equal_range(pViewShell));
+	for (FactoryList::const_iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
+		if (iFactory->second == rpFactory)
+		{
+			bAlreadyAdded = true;
+			break;
+		}
+
+	// Add the factory if it is not already present.
+	if ( ! bAlreadyAdded)
+		maShellFactories.insert(FactoryList::value_type(pViewShell, rpFactory));
 }
 
 
 
 
 void ViewShellManager::Implementation::RemoveShellFactory (
-    const SfxShell* pViewShell,
-    const SharedShellFactory& rpFactory)
+	const SfxShell* pViewShell,
+	const SharedShellFactory& rpFactory)
 {
-    ::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
-        maShellFactories.equal_range(pViewShell));
-    for (FactoryList::iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
-        if (iFactory->second == rpFactory)
-        {
-            maShellFactories.erase(iFactory);
-            break;
-        }
+	::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
+		maShellFactories.equal_range(pViewShell));
+	for (FactoryList::iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
+		if (iFactory->second == rpFactory)
+		{
+			maShellFactories.erase(iFactory);
+			break;
+		}
 }
 
 
@@ -510,31 +510,31 @@ void ViewShellManager::Implementation::RemoveShellFactory (
 
 void ViewShellManager::Implementation::ActivateViewShell (ViewShell* pViewShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    ShellDescriptor aResult;
-    aResult.mpShell = pViewShell;
-
-    // Register as window listener so that the shells of the current
-    // window can be moved to the top of the shell stack.
-    if (aResult.mpShell != NULL)
-    {
-        ::Window* pWindow = aResult.GetWindow();
-        if (pWindow != NULL)
-        {
-            pWindow->AddEventListener(
-                LINK(this, ViewShellManager::Implementation, WindowEventHandler));
-            aResult.mbIsListenerAddedToWindow = true;
-        }
-        else
-        {
-            DBG_ASSERT(false,
-                "ViewShellManager::ActivateViewShell: "
-                "new view shell has no active window");
-        }
-    }
-
-    ActivateShell(aResult);
+	::osl::MutexGuard aGuard (maMutex);
+
+	ShellDescriptor aResult;
+	aResult.mpShell = pViewShell;
+
+	// Register as window listener so that the shells of the current
+	// window can be moved to the top of the shell stack.
+	if (aResult.mpShell != NULL)
+	{
+		::Window* pWindow = aResult.GetWindow();
+		if (pWindow != NULL)
+		{
+			pWindow->AddEventListener(
+				LINK(this, ViewShellManager::Implementation, WindowEventHandler));
+			aResult.mbIsListenerAddedToWindow = true;
+		}
+		else
+		{
+			DBG_ASSERT(false,
+				"ViewShellManager::ActivateViewShell: "
+				"new view shell has no active window");
+		}
+	}
+
+	ActivateShell(aResult);
 }
 
 
@@ -542,32 +542,32 @@ void ViewShellManager::Implementation::ActivateViewShell (ViewShell* pViewShell)
 
 void ViewShellManager::Implementation::DeactivateViewShell (const ViewShell& rShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    ActiveShellList::iterator iShell (::std::find_if (
-        maActiveViewShells.begin(),
-        maActiveViewShells.end(),
-        IsShell(&rShell)));
-    if (iShell != maActiveViewShells.end())
-    {
-        UpdateLock aLocker (*this);
-
-        ShellDescriptor aDescriptor(*iShell);
-        mrBase.GetDocShell()->Disconnect(dynamic_cast<ViewShell*>(aDescriptor.mpShell));
-        maActiveViewShells.erase(iShell);
-        TakeShellsFromStack(aDescriptor.mpShell);
-
-        // Deactivate sub shells.
-        SubShellList::iterator iList (maActiveSubShells.find(&rShell));
-        if (iList != maActiveSubShells.end())
-        {
-            SubShellSubList& rList (iList->second);
-            while ( ! rList.empty())
-                DeactivateSubShell(rShell, rList.front().mnId);
-        }
-
-        DestroyViewShell(aDescriptor);
-    }
+	::osl::MutexGuard aGuard (maMutex);
+
+	ActiveShellList::iterator iShell (::std::find_if (
+		maActiveViewShells.begin(),
+		maActiveViewShells.end(),
+		IsShell(&rShell)));
+	if (iShell != maActiveViewShells.end())
+	{
+		UpdateLock aLocker (*this);
+
+		ShellDescriptor aDescriptor(*iShell);
+		mrBase.GetDocShell()->Disconnect(dynamic_cast<ViewShell*>(aDescriptor.mpShell));
+		maActiveViewShells.erase(iShell);
+		TakeShellsFromStack(aDescriptor.mpShell);
+
+		// Deactivate sub shells.
+		SubShellList::iterator iList (maActiveSubShells.find(&rShell));
+		if (iList != maActiveSubShells.end())
+		{
+			SubShellSubList& rList (iList->second);
+			while ( ! rList.empty())
+				DeactivateSubShell(rShell, rList.front().mnId);
+		}
+
+		DestroyViewShell(aDescriptor);
+	}
 }
 
 
@@ -575,13 +575,13 @@ void ViewShellManager::Implementation::DeactivateViewShell (const ViewShell& rSh
 
 void ViewShellManager::Implementation::ActivateShell (SfxShell& rShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
+	::osl::MutexGuard aGuard (maMutex);
 
-    // Create a new shell or recycle on in the cache.
-    ShellDescriptor aDescriptor;
-    aDescriptor.mpShell = &rShell;
+	// Create a new shell or recycle on in the cache.
+	ShellDescriptor aDescriptor;
+	aDescriptor.mpShell = &rShell;
 
-    ActivateShell(aDescriptor);
+	ActivateShell(aDescriptor);
 }
 
 
@@ -589,26 +589,26 @@ void ViewShellManager::Implementation::ActivateShell (SfxShell& rShell)
 
 void ViewShellManager::Implementation::ActivateShell (const ShellDescriptor& rDescriptor)
 {
-    // Put shell on top of the active view shells.
-    if (rDescriptor.mpShell != NULL)
-    {
-        // Determine where to put the view shell on the stack.  By default
-        // it is put on top of the stack.  When the view shell of the center
-        // pane is to be kept top most and the new view shell is not
-        // displayed in the center pane then it is inserted at the position
-        // one below the top.
-        ActiveShellList::iterator iInsertPosition (maActiveViewShells.begin());
-        if (iInsertPosition != maActiveViewShells.end()
-            && mbKeepMainViewShellOnTop
-            && ! rDescriptor.IsMainViewShell()
-            && iInsertPosition->IsMainViewShell())
-        {
-            ++iInsertPosition;
-        }
-        maActiveViewShells.insert(
-            iInsertPosition,
-            rDescriptor);
-    }
+	// Put shell on top of the active view shells.
+	if (rDescriptor.mpShell != NULL)
+	{
+		// Determine where to put the view shell on the stack. By default
+		// it is put on top of the stack. When the view shell of the center
+		// pane is to be kept top most and the new view shell is not
+		// displayed in the center pane then it is inserted at the position
+		// one below the top.
+		ActiveShellList::iterator iInsertPosition (maActiveViewShells.begin());
+		if (iInsertPosition != maActiveViewShells.end()
+			&& mbKeepMainViewShellOnTop
+			&& ! rDescriptor.IsMainViewShell()
+			&& iInsertPosition->IsMainViewShell())
+		{
+			++iInsertPosition;
+		}
+		maActiveViewShells.insert(
+			iInsertPosition,
+			rDescriptor);
+	}
 }
 
 
@@ -616,213 +616,213 @@ void ViewShellManager::Implementation::ActivateShell (const ShellDescriptor& rDe
 
 void ViewShellManager::Implementation::DeactivateShell (const SfxShell& rShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    ActiveShellList::iterator iShell (::std::find_if (
-        maActiveViewShells.begin(),
-        maActiveViewShells.end(),
-        IsShell(&rShell)));
-    if (iShell != maActiveViewShells.end())
-    {
-        UpdateLock aLocker (*this);
-
-        ShellDescriptor aDescriptor(*iShell);
-        mrBase.GetDocShell()->Disconnect(dynamic_cast<ViewShell*>(aDescriptor.mpShell));
-        maActiveViewShells.erase(iShell);
-        TakeShellsFromStack(aDescriptor.mpShell);
-
-        // Deactivate sub shells.
-        SubShellList::iterator iList (maActiveSubShells.find(&rShell));
-        if (iList != maActiveSubShells.end())
-        {
-            SubShellSubList& rList (iList->second);
-            while ( ! rList.empty())
-                DeactivateSubShell(rShell, rList.front().mnId);
-        }
-
-        DestroyViewShell(aDescriptor);
-    }
+	::osl::MutexGuard aGuard (maMutex);
+
+	ActiveShellList::iterator iShell (::std::find_if (
+		maActiveViewShells.begin(),
+		maActiveViewShells.end(),
+		IsShell(&rShell)));
+	if (iShell != maActiveViewShells.end())
+	{
+		UpdateLock aLocker (*this);
+
+		ShellDescriptor aDescriptor(*iShell);
+		mrBase.GetDocShell()->Disconnect(dynamic_cast<ViewShell*>(aDescriptor.mpShell));
+		maActiveViewShells.erase(iShell);
+		TakeShellsFromStack(aDescriptor.mpShell);
+
+		// Deactivate sub shells.
+		SubShellList::iterator iList (maActiveSubShells.find(&rShell));
+		if (iList != maActiveSubShells.end())
+		{
+			SubShellSubList& rList (iList->second);
+			while ( ! rList.empty())
+				DeactivateSubShell(rShell, rList.front().mnId);
+		}
+
+		DestroyViewShell(aDescriptor);
+	}
 }
 
 
 
 
 void ViewShellManager::Implementation::ActivateSubShell (
-    const SfxShell& rParentShell,
-    ShellId nId)
+	const SfxShell& rParentShell,
+	ShellId nId)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    do
-    {
-        // Check that the given view shell is active.
-        ActiveShellList::iterator iShell (::std::find_if (
-            maActiveViewShells.begin(),
-            maActiveViewShells.end(),
-            IsShell(&rParentShell)));
-        if (iShell == maActiveViewShells.end())
-            break;
-
-        // Create the sub shell list if it does not yet exist.
-        SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
-        if (iList == maActiveSubShells.end())
-            iList = maActiveSubShells.insert(
-                SubShellList::value_type(&rParentShell,SubShellSubList())).first;
-        
-        // Do not activate an object bar that is already active.  Requesting
-        // this is not exactly an error but may be an indication of one.
-        SubShellSubList& rList (iList->second);
-        if (::std::find_if(rList.begin(),rList.end(), IsId(nId)) != rList.end())
-            break;
-
-        // Add just the id of the sub shell. The actual shell is created
-        // later in CreateShells().
-        UpdateLock aLock (*this);
-        rList.push_back(ShellDescriptor(NULL, nId));
-    }
-    while (false);
+	::osl::MutexGuard aGuard (maMutex);
+
+	do
+	{
+		// Check that the given view shell is active.
+		ActiveShellList::iterator iShell (::std::find_if (
+			maActiveViewShells.begin(),
+			maActiveViewShells.end(),
+			IsShell(&rParentShell)));
+		if (iShell == maActiveViewShells.end())
+			break;
+
+		// Create the sub shell list if it does not yet exist.
+		SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
+		if (iList == maActiveSubShells.end())
+			iList = maActiveSubShells.insert(
+				SubShellList::value_type(&rParentShell,SubShellSubList())).first;
+
+		// Do not activate an object bar that is already active. Requesting
+		// this is not exactly an error but may be an indication of one.
+		SubShellSubList& rList (iList->second);
+		if (::std::find_if(rList.begin(),rList.end(), IsId(nId)) != rList.end())
+			break;
+
+		// Add just the id of the sub shell. The actual shell is created
+		// later in CreateShells().
+		UpdateLock aLock (*this);
+		rList.push_back(ShellDescriptor(NULL, nId));
+	}
+	while (false);
 }
 
 
 
 
 void ViewShellManager::Implementation::DeactivateSubShell (
-    const SfxShell& rParentShell,
-    ShellId nId)
+	const SfxShell& rParentShell,
+	ShellId nId)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    do
-    {
-        // Check that the given view shell is active.
-        SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
-        if (iList == maActiveSubShells.end())
-            break;
-
-        // Look up the sub shell.
-        SubShellSubList& rList (iList->second);
-        SubShellSubList::iterator iShell (
-            ::std::find_if(rList.begin(),rList.end(), IsId(nId)));
-        if (iShell == rList.end())
-            break;
-        SfxShell* pShell = iShell->mpShell;
-        if (pShell == NULL)
-            break;
-        
-        UpdateLock aLock (*this);
-
-        ShellDescriptor aDescriptor(*iShell);
-        // Remove the sub shell from both the internal structure as well as the
-        // SFX shell stack above and including the sub shell.
-        rList.erase(iShell);
-        TakeShellsFromStack(pShell);
-
-        DestroySubShell(rParentShell, aDescriptor);
-    }
-    while (false);
+	::osl::MutexGuard aGuard (maMutex);
+
+	do
+	{
+		// Check that the given view shell is active.
+		SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
+		if (iList == maActiveSubShells.end())
+			break;
+
+		// Look up the sub shell.
+		SubShellSubList& rList (iList->second);
+		SubShellSubList::iterator iShell (
+			::std::find_if(rList.begin(),rList.end(), IsId(nId)));
+		if (iShell == rList.end())
+			break;
+		SfxShell* pShell = iShell->mpShell;
+		if (pShell == NULL)
+			break;
+
+		UpdateLock aLock (*this);
+
+		ShellDescriptor aDescriptor(*iShell);
+		// Remove the sub shell from both the internal structure as well as the
+		// SFX shell stack above and including the sub shell.
+		rList.erase(iShell);
+		TakeShellsFromStack(pShell);
+
+		DestroySubShell(rParentShell, aDescriptor);
+	}
+	while (false);
 }
 
 
 
 
 void ViewShellManager::Implementation::MoveSubShellToTop (
-    const SfxShell& rParentShell,
-    ShellId nId)
+	const SfxShell& rParentShell,
+	ShellId nId)
 {
-    SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
-    if (iList != maActiveSubShells.end())
-    {
-        // Look up the sub shell.
-        SubShellSubList& rList (iList->second);
-        SubShellSubList::iterator iShell (
-            ::std::find_if(rList.begin(),rList.end(), IsId(nId)));
-        if (iShell!=rList.end() && iShell!=rList.begin())
-        {
-            SubShellSubList::value_type aEntry (*iShell);
-            rList.erase(iShell);
-            rList.push_front(aEntry);
-        }
-    }
-    else
-    {
-        // Ignore this call when there are no sub shells for the given
-        // parent shell.  We could remember the sub shell to move to the top
-        // but we do not.  Do call this method at a later time instead.
-    }
+	SubShellList::iterator iList (maActiveSubShells.find(&rParentShell));
+	if (iList != maActiveSubShells.end())
+	{
+		// Look up the sub shell.
+		SubShellSubList& rList (iList->second);
+		SubShellSubList::iterator iShell (
+			::std::find_if(rList.begin(),rList.end(), IsId(nId)));
+		if (iShell!=rList.end() && iShell!=rList.begin())
+		{
+			SubShellSubList::value_type aEntry (*iShell);
+			rList.erase(iShell);
+			rList.push_front(aEntry);
+		}
+	}
+	else
+	{
+		// Ignore this call when there are no sub shells for the given
+		// parent shell. We could remember the sub shell to move to the top
+		// but we do not. Do call this method at a later time instead.
+	}
 }
 
 
 
 void ViewShellManager::Implementation::MoveToTop (const SfxShell& rShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    // Check that we have access to a dispatcher.  If not, then we are
-    // (probably) called while the view shell is still being created or
-    // initialized.  Without dispatcher we can not rebuild the shell stack
-    // to move the requested shell to the top.  So return right away instead
-    // of making a mess without being able to clean up afterwards.
-    if (mrBase.GetDispatcher() == NULL)
-        return;
-
-    ActiveShellList::iterator iShell (::std::find_if (
-        maActiveViewShells.begin(),
-        maActiveViewShells.end(),
-        IsShell(&rShell)));
-    bool bMove = true;
-    if (iShell != maActiveViewShells.end())
-    {
-        // Is the shell already at the top of the stack?  We have to keep
-        // the case in mind that mbKeepMainViewShellOnTop is true.  Shells
-        // that are not the main view shell are placed on the second-to-top
-        // position in this case.
-            if (iShell == maActiveViewShells.begin()
-            && (iShell->IsMainViewShell() || ! mbKeepMainViewShellOnTop))
-        {
-            // The shell is at the top position and is either a) the main
-            // view shell or b) another shell but the main view shell is not
-            // kept at the top position.  We do not have to move the shell.
-            bMove = false;
-        }
-        else if (iShell == ++maActiveViewShells.begin()
-            && ! iShell->IsMainViewShell() 
-            && mbKeepMainViewShellOnTop)
-        {
-            // The shell is a the second-to-top position, not the main view
-            // shell and the main view shell is kept at the top position.
-            // Therefore we do not have to move the shell.
-            bMove = false;
-        }
-    }
-    else
-    {
-        // The shell is not on the stack.  Therefore it can not be moved.
-        // We could insert it but we don't.  Use ActivateViewShell() for
-        // that.
-        bMove = false;
-    }
-    
-    // When the shell is not at the right position it is removed from the
-    // internal list of shells and inserted at the correct position.
-    if (bMove)
-    {
-        UpdateLock aLock (*this);
-
-        ShellDescriptor aDescriptor(*iShell);
-        
-        TakeShellsFromStack(&rShell);
-        maActiveViewShells.erase(iShell);
-
-        // Find out whether to insert at the top or one below.
-        ActiveShellList::iterator aInsertPosition (maActiveViewShells.begin());
-        if (mbKeepMainViewShellOnTop && ! aDescriptor.IsMainViewShell())
-        {
-            if (maActiveViewShells.back().IsMainViewShell())
-                aInsertPosition++;
-        }
-
-        maActiveViewShells.insert(aInsertPosition, aDescriptor);
-    }
+	::osl::MutexGuard aGuard (maMutex);
+
+	// Check that we have access to a dispatcher. If not, then we are
+	// (probably) called while the view shell is still being created or
+	// initialized. Without dispatcher we can not rebuild the shell stack
+	// to move the requested shell to the top. So return right away instead
+	// of making a mess without being able to clean up afterwards.
+	if (mrBase.GetDispatcher() == NULL)
+		return;
+
+	ActiveShellList::iterator iShell (::std::find_if (
+		maActiveViewShells.begin(),
+		maActiveViewShells.end(),
+		IsShell(&rShell)));
+	bool bMove = true;
+	if (iShell != maActiveViewShells.end())
+	{
+		// Is the shell already at the top of the stack? We have to keep
+		// the case in mind that mbKeepMainViewShellOnTop is true. Shells
+		// that are not the main view shell are placed on the second-to-top
+		// position in this case.
+			if (iShell == maActiveViewShells.begin()
+			&& (iShell->IsMainViewShell() || ! mbKeepMainViewShellOnTop))
+		{
+			// The shell is at the top position and is either a) the main
+			// view shell or b) another shell but the main view shell is not
+			// kept at the top position. We do not have to move the shell.
+			bMove = false;
+		}
+		else if (iShell == ++maActiveViewShells.begin()
+			&& ! iShell->IsMainViewShell()
+			&& mbKeepMainViewShellOnTop)
+		{
+			// The shell is a the second-to-top position, not the main view
+			// shell and the main view shell is kept at the top position.
+			// Therefore we do not have to move the shell.
+			bMove = false;
+		}
+	}
+	else
+	{
+		// The shell is not on the stack. Therefore it can not be moved.
+		// We could insert it but we don't. Use ActivateViewShell() for
+		// that.
+		bMove = false;
+	}
+
+	// When the shell is not at the right position it is removed from the
+	// internal list of shells and inserted at the correct position.
+	if (bMove)
+	{
+		UpdateLock aLock (*this);
+
+		ShellDescriptor aDescriptor(*iShell);
+
+		TakeShellsFromStack(&rShell);
+		maActiveViewShells.erase(iShell);
+
+		// Find out whether to insert at the top or one below.
+		ActiveShellList::iterator aInsertPosition (maActiveViewShells.begin());
+		if (mbKeepMainViewShellOnTop && ! aDescriptor.IsMainViewShell())
+		{
+			if (maActiveViewShells.back().IsMainViewShell())
+				aInsertPosition++;
+		}
+
+		maActiveViewShells.insert(aInsertPosition, aDescriptor);
+	}
 }
 
 
@@ -830,36 +830,36 @@ void ViewShellManager::Implementation::MoveToTop (const SfxShell& rShell)
 
 SfxShell* ViewShellManager::Implementation::GetShell (ShellId nId) const
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    SfxShell* pShell = NULL;
-
-    // First search the active view shells.
-    ActiveShellList::const_iterator iShell (
-        ::std::find_if (
-        maActiveViewShells.begin(),
-        maActiveViewShells.end(),
-        IsId(nId)));
-    if (iShell != maActiveViewShells.end())
-        pShell = iShell->mpShell;
-    else
-    {
-        // Now search the active sub shells of every active view shell.
-        SubShellList::const_iterator iList;
-        for (iList=maActiveSubShells.begin(); iList!=maActiveSubShells.end(); ++iList)
-        {
-            const SubShellSubList& rList (iList->second);
-            SubShellSubList::const_iterator iSubShell(
-                ::std::find_if(rList.begin(),rList.end(), IsId(nId)));
-            if (iSubShell != rList.end())
-            {
-                pShell = iSubShell->mpShell;
-                break;
-            }
-        }
-    }
-
-    return pShell;
+	::osl::MutexGuard aGuard (maMutex);
+
+	SfxShell* pShell = NULL;
+
+	// First search the active view shells.
+	ActiveShellList::const_iterator iShell (
+		::std::find_if (
+		maActiveViewShells.begin(),
+		maActiveViewShells.end(),
+		IsId(nId)));
+	if (iShell != maActiveViewShells.end())
+		pShell = iShell->mpShell;
+	else
+	{
+		// Now search the active sub shells of every active view shell.
+		SubShellList::const_iterator iList;
+		for (iList=maActiveSubShells.begin(); iList!=maActiveSubShells.end(); ++iList)
+		{
+			const SubShellSubList& rList (iList->second);
+			SubShellSubList::const_iterator iSubShell(
+				::std::find_if(rList.begin(),rList.end(), IsId(nId)));
+			if (iSubShell != rList.end())
+			{
+				pShell = iSubShell->mpShell;
+				break;
+			}
+		}
+	}
+
+	return pShell;
 }
 
 
@@ -867,8 +867,8 @@ SfxShell* ViewShellManager::Implementation::GetShell (ShellId nId) const
 
 SfxShell* ViewShellManager::Implementation::GetTopShell (void) const
 {
-    OSL_ASSERT(mpTopShell == mrBase.GetSubShell(0));
-    return mpTopShell;
+	OSL_ASSERT(mpTopShell == mrBase.GetSubShell(0));
+	return mpTopShell;
 }
 
 
@@ -876,7 +876,7 @@ SfxShell* ViewShellManager::Implementation::GetTopShell (void) const
 
 void ViewShellManager::Implementation::LockUpdate (void)
 {
-    mnUpdateLockCount++;
+	mnUpdateLockCount++;
 }
 
 
@@ -884,126 +884,126 @@ void ViewShellManager::Implementation::LockUpdate (void)
 
 void ViewShellManager::Implementation::UnlockUpdate (void)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    mnUpdateLockCount--;
-    if (mnUpdateLockCount < 0)
-    {
-        // This should not happen.
-        OSL_ASSERT (mnUpdateLockCount>=0);
-        mnUpdateLockCount = 0;
-    }
-    if (mnUpdateLockCount == 0)
-        UpdateShellStack();
+	::osl::MutexGuard aGuard (maMutex);
+
+	mnUpdateLockCount--;
+	if (mnUpdateLockCount < 0)
+	{
+		// This should not happen.
+		OSL_ASSERT (mnUpdateLockCount>=0);
+		mnUpdateLockCount = 0;
+	}
+	if (mnUpdateLockCount == 0)
+		UpdateShellStack();
 }
 
 
 
 
 /** Update the SFX shell stack (the portion that is visible to us) so that
-    it matches the internal shell stack.  This is done in six steps:
-    1. Create the missing view shells and sub shells.
-    2. Set up the internal shell stack.
-    3. Get the SFX shell stack.
-    4. Find the lowest shell in which the two stacks differ.
-    5. Remove all shells above and including that shell from the SFX stack.
-    6. Push all shells of the internal stack on the SFX shell stack that are
-    not already present on the later.
+	it matches the internal shell stack. This is done in six steps:
+	1. Create the missing view shells and sub shells.
+	2. Set up the internal shell stack.
+	3. Get the SFX shell stack.
+	4. Find the lowest shell in which the two stacks differ.
+	5. Remove all shells above and including that shell from the SFX stack.
+	6. Push all shells of the internal stack on the SFX shell stack that are
+	not already present on the later.
 */
 void ViewShellManager::Implementation::UpdateShellStack (void)
 {
-    ::osl::MutexGuard aGuard (maMutex);
+	::osl::MutexGuard aGuard (maMutex);
+
+	// Remember the undo manager from the top-most shell on the stack.
+	SfxShell* pTopMostShell = mrBase.GetSubShell(0);
+	::svl::IUndoManager* pUndoManager = (pTopMostShell!=NULL)
+		? pTopMostShell->GetUndoManager()
+		: NULL;
 
-    // Remember the undo manager from the top-most shell on the stack.
-    SfxShell* pTopMostShell = mrBase.GetSubShell(0);
-    ::svl::IUndoManager* pUndoManager = (pTopMostShell!=NULL)
-        ? pTopMostShell->GetUndoManager()
-        : NULL;
+	// 1. Create the missing shells.
+	CreateShells();
 
-    // 1. Create the missing shells.
-    CreateShells();
 
-    
-    // 2. Create the internal target stack.
-    ShellStack aTargetStack;
-    CreateTargetStack(aTargetStack);
+	// 2. Create the internal target stack.
+	ShellStack aTargetStack;
+	CreateTargetStack(aTargetStack);
 
-    
-    // 3. Get SFX shell stack.
-    ShellStack aSfxShellStack;
-    sal_uInt16 nIndex (0);
-    while (mrBase.GetSubShell(nIndex)!=NULL)
-        ++nIndex;
-    aSfxShellStack.reserve(nIndex);
-    while (nIndex-- > 0)
-        aSfxShellStack.push_back(mrBase.GetSubShell(nIndex));
+
+	// 3. Get SFX shell stack.
+	ShellStack aSfxShellStack;
+	sal_uInt16 nIndex (0);
+	while (mrBase.GetSubShell(nIndex)!=NULL)
+		++nIndex;
+	aSfxShellStack.reserve(nIndex);
+	while (nIndex-- > 0)
+		aSfxShellStack.push_back(mrBase.GetSubShell(nIndex));
 
 
 #ifdef VERBOSE
-    OSL_TRACE("Current SFX Stack\r");
-    DumpShellStack(aSfxShellStack);
-    OSL_TRACE("Target Stack\r");
-    DumpShellStack(aTargetStack);
+	OSL_TRACE("Current SFX Stack\r");
+	DumpShellStack(aSfxShellStack);
+	OSL_TRACE("Target Stack\r");
+	DumpShellStack(aTargetStack);
 #endif
 
-    
-    // 4. Find the lowest shell in which the two stacks differ.
-    ShellStack::const_iterator iSfxShell (aSfxShellStack.begin());
-    ShellStack::iterator iTargetShell (aTargetStack.begin());
-    while (iSfxShell != aSfxShellStack.end()
-        && iTargetShell!=aTargetStack.end()
-        && (*iSfxShell)==(*iTargetShell))
-    {
-        ++iSfxShell;
-        ++iTargetShell;
-    }
-
-    
-    // 5. Remove all shells above and including the differing shell from the
-    // SFX stack starting with the shell on top of the stack.
-    while (iSfxShell != aSfxShellStack.end())
-    {
-        SfxShell* pShell = aSfxShellStack.back();
-        aSfxShellStack.pop_back();
+
+	// 4. Find the lowest shell in which the two stacks differ.
+	ShellStack::const_iterator iSfxShell (aSfxShellStack.begin());
+	ShellStack::iterator iTargetShell (aTargetStack.begin());
+	while (iSfxShell != aSfxShellStack.end()
+		&& iTargetShell!=aTargetStack.end()
+		&& (*iSfxShell)==(*iTargetShell))
+	{
+		++iSfxShell;
+		++iTargetShell;
+	}
+
+
+	// 5. Remove all shells above and including the differing shell from the
+	// SFX stack starting with the shell on top of the stack.
+	while (iSfxShell != aSfxShellStack.end())
+	{
+		SfxShell* pShell = aSfxShellStack.back();
+		aSfxShellStack.pop_back();
 #ifdef VERBOSE
-        OSL_TRACE("removing shell %p from stack\r", pShell);
+		OSL_TRACE("removing shell %p from stack\r", pShell);
 #endif
-        mrBase.RemoveSubShell(pShell);
-    }
-
-    
-    // 6. Push shells from the given stack onto the SFX stack.
-    mbShellStackIsUpToDate = false;
-    while (iTargetShell != aTargetStack.end())
-    {
+		mrBase.RemoveSubShell(pShell);
+	}
+
+
+	// 6. Push shells from the given stack onto the SFX stack.
+	mbShellStackIsUpToDate = false;
+	while (iTargetShell != aTargetStack.end())
+	{
 #ifdef VERBOSE
-        OSL_TRACE("pushing shell %p on stack\r", *iTargetShell);
+		OSL_TRACE("pushing shell %p on stack\r", *iTargetShell);
 #endif
-        mrBase.AddSubShell(**iTargetShell);
-        ++iTargetShell;
-
-        // The pushing of the shell on to the shell stack may have lead to
-        // another invocation of this method.  In this case we have to abort
-        // pushing shells on the stack and return immediately.
-        if (mbShellStackIsUpToDate)
-            break;
-    }
-    if (mrBase.GetDispatcher() != NULL)
-        mrBase.GetDispatcher()->Flush();
-
-    // Update the pointer to the top-most shell and set its undo manager
-    // to the one of the previous top-most shell.
-    mpTopShell = mrBase.GetSubShell(0);
-    if (mpTopShell!=NULL && pUndoManager!=NULL && mpTopShell->GetUndoManager()==NULL)
-        mpTopShell->SetUndoManager(pUndoManager);
-
-    // Finally tell an invocation of this method on a higher level that it can (has
-    // to) abort and return immediately.
-    mbShellStackIsUpToDate = true;
+		mrBase.AddSubShell(**iTargetShell);
+		++iTargetShell;
+
+		// The pushing of the shell on to the shell stack may have lead to
+		// another invocation of this method. In this case we have to abort
+		// pushing shells on the stack and return immediately.
+		if (mbShellStackIsUpToDate)
+			break;
+	}
+	if (mrBase.GetDispatcher() != NULL)
+		mrBase.GetDispatcher()->Flush();
+
+	// Update the pointer to the top-most shell and set its undo manager
+	// to the one of the previous top-most shell.
+	mpTopShell = mrBase.GetSubShell(0);
+	if (mpTopShell!=NULL && pUndoManager!=NULL && mpTopShell->GetUndoManager()==NULL)
+		mpTopShell->SetUndoManager(pUndoManager);
+
+	// Finally tell an invocation of this method on a higher level that it can (has
+	// to) abort and return immediately.
+	mbShellStackIsUpToDate = true;
 
 #ifdef VERBOSE
-    OSL_TRACE("New current stack\r");
-    DumpSfxShellStack();
+	OSL_TRACE("New current stack\r");
+	DumpSfxShellStack();
 #endif
 }
 
@@ -1012,73 +1012,73 @@ void ViewShellManager::Implementation::UpdateShellStack (void)
 
 void ViewShellManager::Implementation::TakeShellsFromStack (const SfxShell* pShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
+	::osl::MutexGuard aGuard (maMutex);
 
-    // Remember the undo manager from the top-most shell on the stack.
-    SfxShell* pTopMostShell = mrBase.GetSubShell(0);
-    ::svl::IUndoManager* pUndoManager = (pTopMostShell!=NULL)
-        ? pTopMostShell->GetUndoManager()
-        : NULL;
+	// Remember the undo manager from the top-most shell on the stack.
+	SfxShell* pTopMostShell = mrBase.GetSubShell(0);
+	::svl::IUndoManager* pUndoManager = (pTopMostShell!=NULL)
+		? pTopMostShell->GetUndoManager()
+		: NULL;
 
 #ifdef VERBOSE
-    OSL_TRACE("TakeShellsFromStack(%p)\r", pShell);
-    DumpSfxShellStack();
+	OSL_TRACE("TakeShellsFromStack(%p)\r", pShell);
+	DumpSfxShellStack();
 #endif
 
-    // 0.Make sure that the given shell is on the stack.  This is a
-    // preparation for the following assertion.
-    for (sal_uInt16 nIndex=0; true; nIndex++)
-    {
-        SfxShell* pShellOnStack = mrBase.GetSubShell(nIndex);
-        if (pShellOnStack == NULL)
-        {
-            // Set pShell to NULL to indicate the following code that the
-            // shell is not on the stack.
-            pShell = NULL;
-            break;
-        }
-        else if (pShellOnStack == pShell)
-            break;
-    }
-    
-    if (pShell != NULL)
-    {
-        // 1. Deactivate our shells on the stack before they are removed so
-        // that during the Deactivation() calls the stack is still intact.
-        for (sal_uInt16 nIndex=0; true; nIndex++)
-        {
-            SfxShell* pShellOnStack = mrBase.GetSubShell(nIndex);
-            Deactivate(pShellOnStack);
-            if (pShellOnStack == pShell)
-                break;
-        }
-
-        // 2. Remove the shells from the stack.
-        while (true)
-        {
-            SfxShell* pShellOnStack = mrBase.GetSubShell(0);
+	// 0.Make sure that the given shell is on the stack. This is a
+	// preparation for the following assertion.
+	for (sal_uInt16 nIndex=0; true; nIndex++)
+	{
+		SfxShell* pShellOnStack = mrBase.GetSubShell(nIndex);
+		if (pShellOnStack == NULL)
+		{
+			// Set pShell to NULL to indicate the following code that the
+			// shell is not on the stack.
+			pShell = NULL;
+			break;
+		}
+		else if (pShellOnStack == pShell)
+			break;
+	}
+
+	if (pShell != NULL)
+	{
+		// 1. Deactivate our shells on the stack before they are removed so
+		// that during the Deactivation() calls the stack is still intact.
+		for (sal_uInt16 nIndex=0; true; nIndex++)
+		{
+			SfxShell* pShellOnStack = mrBase.GetSubShell(nIndex);
+			Deactivate(pShellOnStack);
+			if (pShellOnStack == pShell)
+				break;
+		}
+
+		// 2. Remove the shells from the stack.
+		while (true)
+		{
+			SfxShell* pShellOnStack = mrBase.GetSubShell(0);
 #ifdef VERBOSE
-            OSL_TRACE("removing shell %p from stack\r", pShellOnStack);
+			OSL_TRACE("removing shell %p from stack\r", pShellOnStack);
 #endif
-            mrBase.RemoveSubShell(pShellOnStack);
-            if (pShellOnStack == pShell)
-                break;
-        }
-
-        // 3. Update the stack.
-        if (mrBase.GetDispatcher() != NULL)
-            mrBase.GetDispatcher()->Flush();
-
-        // Update the pointer to the top-most shell and set its undo manager
-        // to the one of the previous top-most shell.
-        mpTopShell = mrBase.GetSubShell(0);
-        if (mpTopShell!=NULL && pUndoManager!=NULL && mpTopShell->GetUndoManager()==NULL)
-            mpTopShell->SetUndoManager(pUndoManager);
-    }
+			mrBase.RemoveSubShell(pShellOnStack);
+			if (pShellOnStack == pShell)
+				break;
+		}
+
+		// 3. Update the stack.
+		if (mrBase.GetDispatcher() != NULL)
+			mrBase.GetDispatcher()->Flush();
+
+		// Update the pointer to the top-most shell and set its undo manager
+		// to the one of the previous top-most shell.
+		mpTopShell = mrBase.GetSubShell(0);
+		if (mpTopShell!=NULL && pUndoManager!=NULL && mpTopShell->GetUndoManager()==NULL)
+			mpTopShell->SetUndoManager(pUndoManager);
+	}
 
 #ifdef VERBOSE
-    OSL_TRACE("Sfx shell stack is:\r");
-    DumpSfxShellStack();
+	OSL_TRACE("Sfx shell stack is:\r");
+	DumpSfxShellStack();
 #endif
 }
 
@@ -1087,30 +1087,30 @@ void ViewShellManager::Implementation::TakeShellsFromStack (const SfxShell* pShe
 
 void ViewShellManager::Implementation::CreateShells (void)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    // Iterate over all view shells.
-    ShellStack aShellStack;
-    ActiveShellList::reverse_iterator iShell;
-    for (iShell=maActiveViewShells.rbegin(); iShell!=maActiveViewShells.rend(); ++iShell)
-    {
-        // Get the list of associated sub shells.
-        SubShellList::iterator iList (maActiveSubShells.find(iShell->mpShell));
-        if (iList != maActiveSubShells.end())
-        {
-            SubShellSubList& rList (iList->second);
-
-            // Iterate over all sub shells of the current view shell.
-            SubShellSubList::iterator iSubShell;
-            for (iSubShell=rList.begin(); iSubShell!=rList.end(); ++iSubShell)
-            {
-                if (iSubShell->mpShell == NULL)
-                {
-                    *iSubShell = CreateSubShell(iShell->mpShell,iSubShell->mnId,NULL,NULL);
-                }
-            }
-        }
-   }
+	::osl::MutexGuard aGuard (maMutex);
+
+	// Iterate over all view shells.
+	ShellStack aShellStack;
+	ActiveShellList::reverse_iterator iShell;
+	for (iShell=maActiveViewShells.rbegin(); iShell!=maActiveViewShells.rend(); ++iShell)
+	{
+		// Get the list of associated sub shells.
+		SubShellList::iterator iList (maActiveSubShells.find(iShell->mpShell));
+		if (iList != maActiveSubShells.end())
+		{
+			SubShellSubList& rList (iList->second);
+
+			// Iterate over all sub shells of the current view shell.
+			SubShellSubList::iterator iSubShell;
+			for (iSubShell=rList.begin(); iSubShell!=rList.end(); ++iSubShell)
+			{
+				if (iSubShell->mpShell == NULL)
+				{
+					*iSubShell = CreateSubShell(iShell->mpShell,iSubShell->mnId,NULL,NULL);
+				}
+			}
+		}
+	}
 }
 
 
@@ -1118,43 +1118,43 @@ void ViewShellManager::Implementation::CreateShells (void)
 
 void ViewShellManager::Implementation::CreateTargetStack (ShellStack& rStack) const
 {
-    // Create a local stack of the shells that are to push on the shell
-    // stack.  We can thus safly create the required shells wile still
-    // having a valid shell stack.
-    for (ActiveShellList::const_reverse_iterator iViewShell (maActiveViewShells.rbegin());
-         iViewShell != maActiveViewShells.rend(); 
-         ++iViewShell)
-    {
-        // Possibly place the form shell below the current view shell.
-        if ( ! mbFormShellAboveParent
-            && mpFormShell!=NULL
-            && iViewShell->mpShell==mpFormShellParent)
-        {
-            rStack.push_back(mpFormShell);
-        }
-        
-        // Put the view shell itself on the local stack.
-        rStack.push_back (iViewShell->mpShell);
-
-        // Possibly place the form shell above the current view shell.
-        if (mbFormShellAboveParent
-            && mpFormShell!=NULL
-            && iViewShell->mpShell==mpFormShellParent)
-        {
-            rStack.push_back(mpFormShell);
-        }
-
-        // Add all other sub shells.
-        SubShellList::const_iterator iList (maActiveSubShells.find(iViewShell->mpShell));
-        if (iList != maActiveSubShells.end())
-        {
-            const SubShellSubList& rList (iList->second);
-            SubShellSubList::const_reverse_iterator iSubShell;
-            for (iSubShell=rList.rbegin(); iSubShell!=rList.rend(); ++iSubShell)
-                if (iSubShell->mpShell != mpFormShell)
-                    rStack.push_back(iSubShell->mpShell);
-        }
-    }
+	// Create a local stack of the shells that are to push on the shell
+	// stack. We can thus safely create the required shells while still
+	// having a valid shell stack.
+	for (ActiveShellList::const_reverse_iterator iViewShell (maActiveViewShells.rbegin());
+		 iViewShell != maActiveViewShells.rend();
+		 ++iViewShell)
+	{
+		// Possibly place the form shell below the current view shell.
+		if ( ! mbFormShellAboveParent
+			&& mpFormShell!=NULL
+			&& iViewShell->mpShell==mpFormShellParent)
+		{
+			rStack.push_back(mpFormShell);
+		}
+
+		// Put the view shell itself on the local stack.
+		rStack.push_back (iViewShell->mpShell);
+
+		// Possibly place the form shell above the current view shell.
+		if (mbFormShellAboveParent
+			&& mpFormShell!=NULL
+			&& iViewShell->mpShell==mpFormShellParent)
+		{
+			rStack.push_back(mpFormShell);
+		}
+
+		// Add all other sub shells.
+		SubShellList::const_iterator iList (maActiveSubShells.find(iViewShell->mpShell));
+		if (iList != maActiveSubShells.end())
+		{
+			const SubShellSubList& rList (iList->second);
+			SubShellSubList::const_reverse_iterator iSubShell;
+			for (iSubShell=rList.rbegin(); iSubShell!=rList.rend(); ++iSubShell)
+				if (iSubShell->mpShell != mpFormShell)
+					rStack.push_back(iSubShell->mpShell);
+		}
+	}
 }
 
 
@@ -1162,127 +1162,127 @@ void ViewShellManager::Implementation::CreateTargetStack (ShellStack& rStack) co
 
 IMPL_LINK(ViewShellManager::Implementation, WindowEventHandler, VclWindowEvent*, pEvent)
 {
-    if (pEvent != NULL)
-    {
-        ::Window* pEventWindow 
-            = static_cast<VclWindowEvent*>(pEvent)->GetWindow();
-
-        switch (pEvent->GetId())
-        {
-            case VCLEVENT_WINDOW_GETFOCUS:
-            {
-                for (ActiveShellList::iterator aI(maActiveViewShells.begin());
-                     aI!=maActiveViewShells.end(); 
-                     aI++)
-                {
-                    if (pEventWindow == static_cast< ::Window*>(aI->GetWindow()))
-                    {
-                        MoveToTop(*aI->mpShell);
-                        break;
-                    }
-                }
-            }
-            break;
-
-            case VCLEVENT_WINDOW_LOSEFOCUS:
-                break;
-
-            case VCLEVENT_OBJECT_DYING:
-                // Remember that we do not have to remove the window
-                // listener for this window.
-                for (ActiveShellList::iterator
-                         iShell(maActiveViewShells.begin()),
-                         iEnd(maActiveViewShells.end());
-                     iShell!=iEnd;
-                     ++iShell)
-                {
-                    if (iShell->GetWindow() == pEventWindow)
-                    {
-                        iShell->mbIsListenerAddedToWindow = false;
-                        break;
-                    }
-                }
-                break;
-        }
-    }
-    return sal_True;
+	if (pEvent != NULL)
+	{
+		::Window* pEventWindow
+			= static_cast<VclWindowEvent*>(pEvent)->GetWindow();
+
+		switch (pEvent->GetId())
+		{
+			case VCLEVENT_WINDOW_GETFOCUS:
+			{
+				for (ActiveShellList::iterator aI(maActiveViewShells.begin());
+					 aI!=maActiveViewShells.end();
+					 aI++)
+				{
+					if (pEventWindow == static_cast< ::Window*>(aI->GetWindow()))
+					{
+						MoveToTop(*aI->mpShell);
+						break;
+					}
+				}
+			}
+			break;
+
+			case VCLEVENT_WINDOW_LOSEFOCUS:
+				break;
+
+			case VCLEVENT_OBJECT_DYING:
+				// Remember that we do not have to remove the window
+				// listener for this window.
+				for (ActiveShellList::iterator
+						iShell(maActiveViewShells.begin()),
+						iEnd(maActiveViewShells.end());
+					iShell!=iEnd;
+					++iShell)
+				{
+					if (iShell->GetWindow() == pEventWindow)
+					{
+						iShell->mbIsListenerAddedToWindow = false;
+						break;
+					}
+				}
+				break;
+		}
+	}
+	return sal_True;
 }
 
 
 
 
 ShellDescriptor ViewShellManager::Implementation::CreateSubShell (
-    SfxShell* pParentShell,
-    ShellId nShellId,
-    ::Window* pParentWindow,
-    FrameView* pFrameView)
+	SfxShell* pParentShell,
+	ShellId nShellId,
+	::Window* pParentWindow,
+	FrameView* pFrameView)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-    ShellDescriptor aResult;
-
-    // Look up the factories for the parent shell.
-    ::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
-        maShellFactories.equal_range(pParentShell));
-
-    // Try all factories to create the shell.
-    for (FactoryList::const_iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
-    {
-        SharedShellFactory pFactory = iFactory->second;
-        if( bool(pFactory))
-            aResult.mpShell = pFactory->CreateShell(nShellId, pParentWindow, pFrameView);
-
-        // Exit the loop when the shell has been successfully created.
-        if (aResult.mpShell != NULL)
-        {
-            aResult.mpFactory = pFactory;
-            aResult.mnId = nShellId;
-            break;
-        }
-    }
-    
-    return aResult;
+	::osl::MutexGuard aGuard (maMutex);
+	ShellDescriptor aResult;
+
+	// Look up the factories for the parent shell.
+	::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
+		maShellFactories.equal_range(pParentShell));
+
+	// Try all factories to create the shell.
+	for (FactoryList::const_iterator iFactory=aRange.first; iFactory!=aRange.second; ++iFactory)
+	{
+		SharedShellFactory pFactory = iFactory->second;
+		if( bool(pFactory))
+			aResult.mpShell = pFactory->CreateShell(nShellId, pParentWindow, pFrameView);
+
+		// Exit the loop when the shell has been successfully created.
+		if (aResult.mpShell != NULL)
+		{
+			aResult.mpFactory = pFactory;
+			aResult.mnId = nShellId;
+			break;
+		}
+	}
+
+	return aResult;
 }
 
 
 
 
 void ViewShellManager::Implementation::DestroyViewShell (
-    ShellDescriptor& rDescriptor)
+	ShellDescriptor& rDescriptor)
 {
-    OSL_ASSERT(rDescriptor.mpShell != NULL);
-
-    if (rDescriptor.mbIsListenerAddedToWindow)
-    {
-        rDescriptor.mbIsListenerAddedToWindow = false;
-        ::Window* pWindow = rDescriptor.GetWindow();
-        if (pWindow != NULL)
-        {
-            pWindow->RemoveEventListener(
-                LINK(this, ViewShellManager::Implementation, WindowEventHandler));
-        }
-    }
-
-    // Destroy the sub shell factories.
-    ::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
-        maShellFactories.equal_range(rDescriptor.mpShell));
-    if (aRange.first != maShellFactories.end())
-        maShellFactories.erase(aRange.first, aRange.second);
-
-    // Release the shell.
-    if (rDescriptor.mpFactory.get() != NULL)
-        rDescriptor.mpFactory->ReleaseShell(rDescriptor.mpShell);
+	OSL_ASSERT(rDescriptor.mpShell != NULL);
+
+	if (rDescriptor.mbIsListenerAddedToWindow)
+	{
+		rDescriptor.mbIsListenerAddedToWindow = false;
+		::Window* pWindow = rDescriptor.GetWindow();
+		if (pWindow != NULL)
+		{
+			pWindow->RemoveEventListener(
+				LINK(this, ViewShellManager::Implementation, WindowEventHandler));
+		}
+	}
+
+	// Destroy the sub shell factories.
+	::std::pair<FactoryList::iterator,FactoryList::iterator> aRange(
+		maShellFactories.equal_range(rDescriptor.mpShell));
+	if (aRange.first != maShellFactories.end())
+		maShellFactories.erase(aRange.first, aRange.second);
+
+	// Release the shell.
+	if (rDescriptor.mpFactory.get() != NULL)
+		rDescriptor.mpFactory->ReleaseShell(rDescriptor.mpShell);
 }
 
 
 
 
 void ViewShellManager::Implementation::DestroySubShell (
-    const SfxShell& rParentShell,
-    const ShellDescriptor& rDescriptor)
+	const SfxShell& rParentShell,
+	const ShellDescriptor& rDescriptor)
 {
-    (void)rParentShell;
-    OSL_ASSERT(rDescriptor.mpFactory.get() != NULL);
-    rDescriptor.mpFactory->ReleaseShell(rDescriptor.mpShell);
+	(void)rParentShell;
+	OSL_ASSERT(rDescriptor.mpFactory.get() != NULL);
+	rDescriptor.mpFactory->ReleaseShell(rDescriptor.mpShell);
 }
 
 
@@ -1290,17 +1290,17 @@ void ViewShellManager::Implementation::DestroySubShell (
 
 void ViewShellManager::Implementation::InvalidateAllSubShells (const SfxShell* pParentShell)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    SubShellList::iterator iList (maActiveSubShells.find(pParentShell));
-    if (iList != maActiveSubShells.end())
-    {
-        SubShellSubList& rList (iList->second);
-        SubShellSubList::iterator iShell;
-        for (iShell=rList.begin(); iShell!=rList.end(); ++iShell)
-            if (iShell->mpShell != NULL)
-                iShell->mpShell->Invalidate();
-    }
+	::osl::MutexGuard aGuard (maMutex);
+
+	SubShellList::iterator iList (maActiveSubShells.find(pParentShell));
+	if (iList != maActiveSubShells.end())
+	{
+		SubShellSubList& rList (iList->second);
+		SubShellSubList::iterator iShell;
+		for (iShell=rList.begin(); iShell!=rList.end(); ++iShell)
+			if (iShell->mpShell != NULL)
+				iShell->mpShell->Invalidate();
+	}
 }
 
 
@@ -1308,36 +1308,36 @@ void ViewShellManager::Implementation::InvalidateAllSubShells (const SfxShell* p
 
 void ViewShellManager::Implementation::Shutdown (void)
 {
-    ::osl::MutexGuard aGuard (maMutex);
-
-    // Take stacked shells from stack.
-    if ( ! maActiveViewShells.empty())
-    {
-        UpdateLock aLock (*this);
-
-        
-        while ( ! maActiveViewShells.empty())
-        {
-            SfxShell* pShell = maActiveViewShells.front().mpShell;
-            if (pShell != NULL)
-            {
-                ViewShell* pViewShell = dynamic_cast<ViewShell*>(pShell);
-                if (pViewShell != NULL)
-                    DeactivateViewShell(*pViewShell);
-                else
-                    DeactivateShell(*pShell);
-            }
-            else
-            {
-                DBG_ASSERT(false,
-                    "ViewShellManager::Implementation::Shutdown(): empty active shell descriptor");
-                maActiveViewShells.pop_front();
-            }
-        }
-    }
-    mrBase.RemoveSubShell (NULL);
-    
-    maShellFactories.clear();
+	::osl::MutexGuard aGuard (maMutex);
+
+	// Take stacked shells from stack.
+	if ( ! maActiveViewShells.empty())
+	{
+		UpdateLock aLock (*this);
+
+
+		while ( ! maActiveViewShells.empty())
+		{
+			SfxShell* pShell = maActiveViewShells.front().mpShell;
+			if (pShell != NULL)
+			{
+				ViewShell* pViewShell = dynamic_cast<ViewShell*>(pShell);
+				if (pViewShell != NULL)
+					DeactivateViewShell(*pViewShell);
+				else
+					DeactivateShell(*pShell);
+			}
+			else
+			{
+				DBG_ASSERT(false,
+					"ViewShellManager::Implementation::Shutdown(): empty active shell descriptor");
+				maActiveViewShells.pop_front();
+			}
+		}
+	}
+	mrBase.RemoveSubShell (NULL);
+
+	maShellFactories.clear();
 }
 
 
@@ -1346,14 +1346,14 @@ void ViewShellManager::Implementation::Shutdown (void)
 #ifdef VERBOSE
 void ViewShellManager::Implementation::DumpShellStack (const ShellStack& rStack)
 {
-    ShellStack::const_reverse_iterator iEntry;
-    for (iEntry=rStack.rbegin(); iEntry!=rStack.rend(); ++iEntry)
-        if (*iEntry != NULL)
-            OSL_TRACE ("    %p : %s\r", 
-                *iEntry,
-                ::rtl::OUStringToOString((*iEntry)->GetName(),RTL_TEXTENCODING_UTF8).getStr());
-        else
-            OSL_TRACE("     null\r");
+	ShellStack::const_reverse_iterator iEntry;
+	for (iEntry=rStack.rbegin(); iEntry!=rStack.rend(); ++iEntry)
+		if (*iEntry != NULL)
+			OSL_TRACE ("    %p : %s\r",
+				*iEntry,
+				::rtl::OUStringToOString((*iEntry)->GetName(),RTL_TEXTENCODING_UTF8).getStr());
+		else
+			OSL_TRACE("     null\r");
 }
 
 
@@ -1361,14 +1361,14 @@ void ViewShellManager::Implementation::DumpShellStack (const ShellStack& rStack)
 
 void ViewShellManager::Implementation::DumpSfxShellStack (void)
 {
-    ShellStack aSfxShellStack;
-    sal_uInt16 nIndex (0);
-    while (mrBase.GetSubShell(nIndex)!=NULL)
-        ++nIndex;
-    aSfxShellStack.reserve(nIndex);
-    while (nIndex-- > 0)
-        aSfxShellStack.push_back(mrBase.GetSubShell(nIndex));
-    DumpShellStack(aSfxShellStack);
+	ShellStack aSfxShellStack;
+	sal_uInt16 nIndex (0);
+	while (mrBase.GetSubShell(nIndex)!=NULL)
+		++nIndex;
+	aSfxShellStack.reserve(nIndex);
+	while (nIndex-- > 0)
+		aSfxShellStack.push_back(mrBase.GetSubShell(nIndex));
+	DumpShellStack(aSfxShellStack);
 }
 #endif
 
@@ -1376,41 +1376,41 @@ void ViewShellManager::Implementation::DumpSfxShellStack (void)
 
 void ViewShellManager::Implementation::Deactivate (SfxShell* pShell)
 {
-    OSL_ASSERT(pShell!=NULL);
+	OSL_ASSERT(pShell!=NULL);
 
-    // We have to end a text edit for view shells that are to be taken from
-    // the shell stack.
-    ViewShell* pViewShell = dynamic_cast<ViewShell*>(pShell);
-    if (pViewShell != NULL)
-    {
+	// We have to end a text edit for view shells that are to be taken from
+	// the shell stack.
+	ViewShell* pViewShell = dynamic_cast<ViewShell*>(pShell);
+	if (pViewShell != NULL)
+	{
 		sd::View* pView = pViewShell->GetView();
-        if (pView!=NULL && pView->IsTextEdit())
-        {
-            pView->SdrEndTextEdit();
-            pView->UnmarkAll();
-            pViewShell->GetViewFrame()->GetDispatcher()->Execute(
-                SID_OBJECT_SELECT,
-                SFX_CALLMODE_ASYNCHRON);
-        }
-    }
-
-    // Now we can deactivate the shell.
-    pShell->Deactivate(sal_True);
+		if (pView!=NULL && pView->IsTextEdit())
+		{
+			pView->SdrEndTextEdit();
+			pView->UnmarkAll();
+			pViewShell->GetViewFrame()->GetDispatcher()->Execute(
+				SID_OBJECT_SELECT,
+				SFX_CALLMODE_ASYNCHRON);
+		}
+	}
+
+	// Now we can deactivate the shell.
+	pShell->Deactivate(sal_True);
 }
 
 
 
 
 void ViewShellManager::Implementation::SetFormShell (
-    const ViewShell* pFormShellParent,
-    FmFormShell* pFormShell,
-    bool bFormShellAboveParent)
+	const ViewShell* pFormShellParent,
+	FmFormShell* pFormShell,
+	bool bFormShellAboveParent)
 {
-    ::osl::MutexGuard aGuard (maMutex);
+	::osl::MutexGuard aGuard (maMutex);
 
-    mpFormShellParent = pFormShellParent;
-    mpFormShell = pFormShell;
-    mbFormShellAboveParent = bFormShellAboveParent;
+	mpFormShellParent = pFormShellParent;
+	mpFormShell = pFormShell;
+	mbFormShellAboveParent = bFormShellAboveParent;
 }
 
 
@@ -1419,10 +1419,10 @@ void ViewShellManager::Implementation::SetFormShell (
 namespace {
 
 ShellDescriptor::ShellDescriptor (void)
-    : mpShell(NULL),
-      mnId(0),
-      mpFactory(),
-      mbIsListenerAddedToWindow(false)
+	: mpShell(NULL),
+	  mnId(0),
+	  mpFactory(),
+	  mbIsListenerAddedToWindow(false)
 {
 }
 
@@ -1430,12 +1430,12 @@ ShellDescriptor::ShellDescriptor (void)
 
 
 ShellDescriptor::ShellDescriptor (
-    SfxShell* pShell,
-    ShellId nId)
-    : mpShell(pShell),
-      mnId(nId),
-      mpFactory(),
-      mbIsListenerAddedToWindow(false)
+	SfxShell* pShell,
+	ShellId nId)
+	: mpShell(pShell),
+	  mnId(nId),
+	  mpFactory(),
+	  mbIsListenerAddedToWindow(false)
 {
 }
 
@@ -1443,10 +1443,10 @@ ShellDescriptor::ShellDescriptor (
 
 
 ShellDescriptor::ShellDescriptor (const ShellDescriptor& rDescriptor)
-    : mpShell(rDescriptor.mpShell),
-      mnId(rDescriptor.mnId),
-      mpFactory(rDescriptor.mpFactory),
-      mbIsListenerAddedToWindow(rDescriptor.mbIsListenerAddedToWindow)
+	: mpShell(rDescriptor.mpShell),
+	  mnId(rDescriptor.mnId),
+	  mpFactory(rDescriptor.mpFactory),
+	  mbIsListenerAddedToWindow(rDescriptor.mbIsListenerAddedToWindow)
 {
 }
 
@@ -1455,14 +1455,14 @@ ShellDescriptor::ShellDescriptor (const ShellDescriptor& rDescriptor)
 
 ShellDescriptor& ShellDescriptor::operator= (const ShellDescriptor& rDescriptor)
 {
-    if (this != &rDescriptor)
-    {
-        mpShell = rDescriptor.mpShell;
-        mnId = rDescriptor.mnId;
-        mpFactory = rDescriptor.mpFactory;
-        mbIsListenerAddedToWindow = rDescriptor.mbIsListenerAddedToWindow;
-    }
-    return *this;
+	if (this != &rDescriptor)
+	{
+		mpShell = rDescriptor.mpShell;
+		mnId = rDescriptor.mnId;
+		mpFactory = rDescriptor.mpFactory;
+		mbIsListenerAddedToWindow = rDescriptor.mbIsListenerAddedToWindow;
+	}
+	return *this;
 }
 
 
@@ -1470,11 +1470,11 @@ ShellDescriptor& ShellDescriptor::operator= (const ShellDescriptor& rDescriptor)
 
 bool ShellDescriptor::IsMainViewShell (void) const
 {
-    ViewShell* pViewShell = dynamic_cast<ViewShell*>(mpShell);
-    if (pViewShell != NULL)
-        return pViewShell->IsMainViewShell();
-    else
-        return false;
+	ViewShell* pViewShell = dynamic_cast<ViewShell*>(mpShell);
+	if (pViewShell != NULL)
+		return pViewShell->IsMainViewShell();
+	else
+		return false;
 }
 
 
@@ -1482,11 +1482,11 @@ bool ShellDescriptor::IsMainViewShell (void) const
 
 ::Window* ShellDescriptor::GetWindow (void) const
 {
-    ViewShell* pViewShell = dynamic_cast<ViewShell*>(mpShell);
-    if (pViewShell != NULL)
-        return pViewShell->GetActiveWindow();
-    else
-        return NULL;
+	ViewShell* pViewShell = dynamic_cast<ViewShell*>(mpShell);
+	if (pViewShell != NULL)
+		return pViewShell->GetActiveWindow();
+	else
+		return NULL;
 }