diff options
Diffstat (limited to 'sd/source/ui/view/ViewShellManager.cxx')
-rw-r--r-- | sd/source/ui/view/ViewShellManager.cxx | 24 |
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; |