From 90e1ad7656f794704bd6ff125c68f9bccfe0c69e Mon Sep 17 00:00:00 2001 From: Kurt Zenker Date: Fri, 6 Oct 2006 09:38:09 +0000 Subject: 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 --- embedserv/source/embed/ed_iinplace.cxx | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/embedserv/source/embed/ed_iinplace.cxx b/embedserv/source/embed/ed_iinplace.cxx index 2fd4bf2c8..2c72d03a9 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; } -- cgit v1.2.3