diff options
-rw-r--r-- | embeddedobj/source/commonembedding/embedobj.cxx | 7 | ||||
-rw-r--r-- | sfx2/source/view/ipclient.cxx | 11 |
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& ) |