summaryrefslogtreecommitdiff
path: root/sd/source/ui/view
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/view')
-rwxr-xr-xsd/source/ui/view/drviews1.cxx24
1 files changed, 23 insertions, 1 deletions
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index 8a14a7f6bee2..55479228f918 100755
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -156,12 +156,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();
@@ -215,6 +235,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();
}