summaryrefslogtreecommitdiff
path: root/embedserv/source/embed
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2006-10-06 09:38:09 +0000
committerKurt Zenker <kz@openoffice.org>2006-10-06 09:38:09 +0000
commita2e3cc62673e3b810b8d66b4456d6374ded91116 (patch)
treef8ececb826dd3b43272b4f2111f5dcc86bbdd19e /embedserv/source/embed
parent374911c6770f0255531a8ef23c7cd69df8d7637e (diff)
INTEGRATION: CWS fwk46 (1.4.6); FILE MERGED
2006/09/14 12:30:40 mav 1.4.6.3: #i64376# fix UI-deactivation call 2006/08/21 06:37:52 mav 1.4.6.2: #i64376# let the replacement image be updated 2006/08/18 12:33:20 mav 1.4.6.1: #i64905# fix reentrance problem
Diffstat (limited to 'embedserv/source/embed')
-rw-r--r--embedserv/source/embed/ed_iinplace.cxx27
1 files changed, 25 insertions, 2 deletions
diff --git a/embedserv/source/embed/ed_iinplace.cxx b/embedserv/source/embed/ed_iinplace.cxx
index 9014804611dd..a5ff9c05dfac 100644
--- a/embedserv/source/embed/ed_iinplace.cxx
+++ b/embedserv/source/embed/ed_iinplace.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: ed_iinplace.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: hr $ $Date: 2006-06-20 05:39:52 $
+ * last change: $Author: kz $ $Date: 2006-10-06 10:38:09 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -58,13 +58,36 @@ STDMETHODIMP EmbedDocument_Impl::ContextSensitiveHelp(BOOL)
STDMETHODIMP EmbedDocument_Impl::InPlaceDeactivate(void)
{
+ // no locking is used since the OLE must use the same thread always
+ if ( m_bIsInVerbHandling )
+ return E_UNEXPECTED;
+
+ BooleanGuard_Impl aGuard( m_bIsInVerbHandling );
+
m_pDocHolder->InPlaceDeactivate();
+
+ // the inplace object needs the notification after the storing ( on deactivating )
+ // if it happens before the storing the replacement might not be updated
+ notify();
+
return NOERROR;
}
STDMETHODIMP EmbedDocument_Impl::UIDeactivate(void)
{
+ // no locking is used since the OLE must use the same thread always
+ if ( m_bIsInVerbHandling )
+ return E_UNEXPECTED;
+
+ BooleanGuard_Impl aGuard( m_bIsInVerbHandling );
+
+
m_pDocHolder->UIDeactivate();
+
+ // the inplace object needs the notification after the storing ( on deactivating )
+ // if it happens before the storing the replacement might not be updated
+ notify();
+
return NOERROR;
}