summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2000-10-25 12:18:08 +0000
committerMathias Bauer <mba@openoffice.org>2000-10-25 12:18:08 +0000
commitf842c8dddb45d62a07b6355b9bf3b27dc6e3aaed (patch)
treee279e2d80c51e56a4625af3b2b3b6f15d6415031 /sfx2
parent12f008c252a48d36ea66f8330eb15ae703175f93 (diff)
#79696#: better shutdown handling
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/appl/workwin.cxx32
1 files changed, 18 insertions, 14 deletions
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index edfd1544c114..1ca6f5024a54 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: workwin.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: hr $ $Date: 2000-09-18 16:52:28 $
+ * last change: $Author: mba $ $Date: 2000-10-25 13:18:08 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -371,6 +371,19 @@ SfxWorkWindow::~SfxWorkWindow()
{
DBG_DTOR(SfxWorkWindow, 0);
+ // SplitWindows l"oschen
+ for ( USHORT n=0; n<SFX_SPLITWINDOWS_MAX; n++ )
+ {
+ SfxSplitWindow *p = pSplit[n];
+ if (p->GetWindowCount())
+ ReleaseChild_Impl(*p);
+ delete p;
+ }
+
+ // ObjectBars werden alle auf einmal released, da sie einen
+ // festen zusammenh"angenden Bereich im Array pChilds belegen
+ pChilds->Remove(0, SFX_OBJECTBAR_MAX);
+
// Hilfsstruktur f"ur Child-Windows l"oschen
DBG_ASSERT( pChilds->Count() == 0, "dangling childs" );
delete pChilds;
@@ -444,15 +457,6 @@ void SfxWorkWindow::DeleteControllers_Impl()
pChildWins->Remove((USHORT)0, nCount);
- // SplitWindows l"oschen
- for ( n=0; n<SFX_SPLITWINDOWS_MAX; n++ )
- {
- SfxSplitWindow *p = pSplit[n];
- if (p->GetWindowCount())
- ReleaseChild_Impl(*p);
- delete p;
- }
-
// StatusBar l"oschen
if ( aStatBar.pStatusBar )
{
@@ -478,9 +482,6 @@ void SfxWorkWindow::DeleteControllers_Impl()
}
}
- // ObjectBars werden alle auf einmal released, da sie einen
- // festen zusammenh"angenden Bereich im Array pChilds belegen
- pChilds->Remove(0, SFX_OBJECTBAR_MAX);
nChilds = 0;
}
@@ -1037,6 +1038,9 @@ Window* SfxWorkWindow::GetObjectBar_Impl( USHORT nPos, ResId& rResId )
//------------------------------------------------------------------------
void SfxFrameWorkWin_Impl::UpdateObjectBars_Impl()
{
+ if ( pFrame->IsClosing_Impl() )
+ return;
+
SfxWorkWindow *pWork = pParent;
while ( pWork )
{