summaryrefslogtreecommitdiff
path: root/sd/source/ui/view/ViewShellManager.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/view/ViewShellManager.cxx')
-rw-r--r--sd/source/ui/view/ViewShellManager.cxx24
1 files changed, 19 insertions, 5 deletions
diff --git a/sd/source/ui/view/ViewShellManager.cxx b/sd/source/ui/view/ViewShellManager.cxx
index bfb8ef893439..21c5aa5e417e 100644
--- a/sd/source/ui/view/ViewShellManager.cxx
+++ b/sd/source/ui/view/ViewShellManager.cxx
@@ -126,6 +126,7 @@ public:
void MoveToTop (const SfxShell& rParentShell);
SfxShell* GetShell (ShellId nId) const;
SfxShell* GetTopShell (void) const;
+ SfxShell* GetTopViewShell (void) const;
void Shutdown (void);
void InvalidateAllSubShells (const SfxShell* pParentShell);
@@ -203,6 +204,8 @@ private:
bool mbFormShellAboveParent;
SfxShell* mpTopShell;
+ SfxShell* mpTopViewShell;
+
void GatherActiveShells (ShellStack& rShellList);
@@ -386,8 +389,13 @@ SfxShell* ViewShellManager::GetTopShell (void) const
return NULL;
}
-
-
+SfxShell* ViewShellManager::GetTopViewShell (void) const
+{
+ if (mbValid)
+ return mpImpl->GetTopViewShell();
+ else
+ return NULL;
+}
void ViewShellManager::Shutdown (void)
{
@@ -431,7 +439,8 @@ ViewShellManager::Implementation::Implementation (
mpFormShell(NULL),
mpFormShellParent(NULL),
mbFormShellAboveParent(true),
- mpTopShell(NULL)
+ mpTopShell(NULL),
+ mpTopViewShell(NULL)
{
(void)rManager;
}
@@ -815,8 +824,10 @@ SfxShell* ViewShellManager::Implementation::GetTopShell (void) const
return mpTopShell;
}
-
-
+SfxShell* ViewShellManager::Implementation::GetTopViewShell (void) const
+{
+ return mpTopViewShell;
+}
void ViewShellManager::Implementation::LockUpdate (void)
{
@@ -867,6 +878,9 @@ void ViewShellManager::Implementation::UpdateShellStack (void)
// 1. Create the missing shells.
CreateShells();
+ // Update the pointer to the top-most active view shell.
+ mpTopViewShell = maActiveViewShells.begin()->mpShell;
+
// 2. Create the internal target stack.
ShellStack aTargetStack;