diff options
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/filter/eppt/epptso.cxx | 6 | ||||
-rw-r--r-- | sd/source/ui/view/drviews1.cxx | 24 |
2 files changed, 29 insertions, 1 deletions
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx index f07245d1ff31..c9d083db86d9 100644 --- a/sd/source/filter/eppt/epptso.cxx +++ b/sd/source/filter/eppt/epptso.cxx @@ -5358,6 +5358,12 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a pClientTextBox->Write( pOut->GetData(), pOut->Tell() ); delete pOut, aTextRule.pOut = NULL; } + if ( aExtBu.Tell() ) + { + if ( !pClientData ) + pClientData = new SvMemoryStream( 0x200, 0x200 ); + ImplProgTagContainer( pClientData, &aExtBu ); + } } } } diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx index 4b9aecb02ac5..55ba07c3fa23 100644 --- a/sd/source/ui/view/drviews1.cxx +++ b/sd/source/ui/view/drviews1.cxx @@ -154,12 +154,32 @@ void DrawViewShell::Deactivate(BOOL bIsMDIActivate) ViewShell::Deactivate(bIsMDIActivate); } +namespace +{ + class LockUI + { + private: + void Lock(bool bLock); + SfxViewFrame *mpFrame; + public: + LockUI(SfxViewFrame *pFrame) : mpFrame(pFrame) { Lock(true); } + ~LockUI() { Lock(false); } + + }; + + void LockUI::Lock(bool bLock) + { + if (!mpFrame) + return; + mpFrame->Enable( !bLock ); + } +} + /************************************************************************* |* |* Wird gerufen, wenn sich der Selektionszustand der View aendert |* \************************************************************************/ - void DrawViewShell::SelectionHasChanged (void) { Invalidate(); @@ -213,6 +233,8 @@ void DrawViewShell::SelectionHasChanged (void) // we need to deselect it now if (!pOleObj) { + //#i47279# disable frame until after object has completed unload + LockUI aUILock(GetViewFrame()); pIPClient->DeactivateObject(); //HMHmpDrView->ShowMarkHdl(); } |