summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embeddedobj/source/commonembedding/embedobj.cxx7
-rw-r--r--sfx2/source/view/ipclient.cxx11
2 files changed, 11 insertions, 7 deletions
diff --git a/embeddedobj/source/commonembedding/embedobj.cxx b/embeddedobj/source/commonembedding/embedobj.cxx
index ab91814943bb..3370c273dc6a 100644
--- a/embeddedobj/source/commonembedding/embedobj.cxx
+++ b/embeddedobj/source/commonembedding/embedobj.cxx
@@ -227,13 +227,6 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
}
else
{
- if(comphelper::LibreOfficeKit::isActive() && comphelper::LibreOfficeKit::isMobile(-1))
- {
- // Disable embedded object editing (e.g. chart) on mobile
- if(nNextState == embed::EmbedStates::INPLACE_ACTIVE || nNextState == embed::EmbedStates::UI_ACTIVE)
- return;
- }
-
if ( nNextState == embed::EmbedStates::INPLACE_ACTIVE )
{
if ( !m_xClientSite.is() )
diff --git a/sfx2/source/view/ipclient.cxx b/sfx2/source/view/ipclient.cxx
index 5bc642d85be1..f2d6d4e78bcd 100644
--- a/sfx2/source/view/ipclient.cxx
+++ b/sfx2/source/view/ipclient.cxx
@@ -935,6 +935,17 @@ ErrCode SfxInPlaceClient::DoVerb( long nVerb )
{
m_xImp->m_xObject->setClientSite( m_xImp->m_xClient );
+ // Disable embedded object editing (e.g. chart) on mobile
+ if ( comphelper::LibreOfficeKit::isActive() && comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView())
+ && m_xImp->m_xObject->getCurrentState() == embed::EmbedStates::RUNNING )
+ {
+ // Also check next state
+ // Needs to be embed::EmbedStates::UI_ACTIVE or embed::EmbedStates::INPLACE_ACTIVE
+ // Conversion table is in embeddedobj/source/commonembedding/miscobj.cxx
+ if (nVerb != embed::EmbedVerbs::MS_OLEVERB_OPEN && nVerb != embed::EmbedVerbs::MS_OLEVERB_HIDE)
+ return nError;
+ }
+
m_xImp->m_xObject->doVerb( nVerb );
}
catch ( embed::UnreachableStateException& )