diff options
-rw-r--r-- | embeddedobj/Library_embobj.mk | 1 | ||||
-rw-r--r-- | embeddedobj/source/general/docholder.cxx | 10 | ||||
-rw-r--r-- | include/svtools/embedhlp.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/view/ipclient.cxx | 6 | ||||
-rw-r--r-- | sfx2/source/view/viewsh.cxx | 4 | ||||
-rw-r--r-- | svtools/source/misc/embedhlp.cxx | 13 | ||||
-rw-r--r-- | svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx | 3 | ||||
-rw-r--r-- | svx/source/svdraw/svdoole2.cxx | 3 | ||||
-rw-r--r-- | sw/source/core/doc/notxtfrm.cxx | 5 |
9 files changed, 36 insertions, 11 deletions
diff --git a/embeddedobj/Library_embobj.mk b/embeddedobj/Library_embobj.mk index f2a971bb5a1e..7de4e48dd5e8 100644 --- a/embeddedobj/Library_embobj.mk +++ b/embeddedobj/Library_embobj.mk @@ -26,6 +26,7 @@ $(eval $(call gb_Library_use_libraries,embobj,\ cppu \ cppuhelper \ sal \ + svt \ vcl \ tl \ $(gb_UWINAPI) \ diff --git a/embeddedobj/source/general/docholder.cxx b/embeddedobj/source/general/docholder.cxx index bd0494f27368..783c99b59165 100644 --- a/embeddedobj/source/general/docholder.cxx +++ b/embeddedobj/source/general/docholder.cxx @@ -64,6 +64,7 @@ #include <osl/diagnose.h> #include <rtl/process.h> #include <vcl/svapp.hxx> +#include <svtools/embedhlp.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/namedvaluecollection.hxx> @@ -72,9 +73,9 @@ #include "commonembobj.hxx" #include "intercept.hxx" - -#define HATCH_BORDER_WIDTH (((m_pEmbedObj->getStatus(embed::Aspects::MSOLE_CONTENT)&embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) && \ - m_pEmbedObj->getCurrentState()!=embed::EmbedStates::UI_ACTIVE) ? 0 : 4 ) +#define HATCH_BORDER_WIDTH ((((m_pEmbedObj->getStatus(embed::Aspects::MSOLE_CONTENT)&embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || \ + (svt::EmbeddedObjectRef::IsGLChart(m_pEmbedObj)) ) && \ + m_pEmbedObj->getCurrentState()!=embed::EmbedStates::UI_ACTIVE) ? 0 : 4 ) using namespace ::com::sun::star; @@ -1256,7 +1257,8 @@ awt::Rectangle SAL_CALL DocumentHolder::calcAdjustedRectangle( const awt::Rectan void SAL_CALL DocumentHolder::activated( ) throw (::com::sun::star::uno::RuntimeException, std::exception) { - if ( (m_pEmbedObj->getStatus(embed::Aspects::MSOLE_CONTENT)&embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) ) + if ( (m_pEmbedObj->getStatus(embed::Aspects::MSOLE_CONTENT)&embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + svt::EmbeddedObjectRef::IsGLChart(m_pEmbedObj) ) { if ( m_pEmbedObj->getCurrentState() != embed::EmbedStates::UI_ACTIVE && !(m_pEmbedObj->getStatus(embed::Aspects::MSOLE_CONTENT)&embed::EmbedMisc::MS_EMBED_NOUIACTIVATE) ) diff --git a/include/svtools/embedhlp.hxx b/include/svtools/embedhlp.hxx index 30d690c92ce1..f157ce6c7761 100644 --- a/include/svtools/embedhlp.hxx +++ b/include/svtools/embedhlp.hxx @@ -68,6 +68,7 @@ public: throw(); static bool IsChart(const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xObj); + static bool IsGLChart(const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xObj); const com::sun::star::uno::Reference <com::sun::star::embed::XEmbeddedObject>& operator->() const; const com::sun::star::uno::Reference <com::sun::star::embed::XEmbeddedObject>& GetObject() const; @@ -109,6 +110,7 @@ public: bool IsLocked() const; bool IsChart() const; + bool IsGLChart() const; OUString GetChartType(); diff --git a/sfx2/source/view/ipclient.cxx b/sfx2/source/view/ipclient.cxx index da4037910d11..6700ec907e01 100644 --- a/sfx2/source/view/ipclient.cxx +++ b/sfx2/source/view/ipclient.cxx @@ -1048,7 +1048,8 @@ void SfxInPlaceClient::DeactivateObject() m_pViewSh->GetViewFrame()->GetTopFrame().LockResize_Impl(true); - if ( m_pImp->m_xObject->getStatus( m_pImp->m_nAspect ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) + if ( (m_pImp->m_xObject->getStatus( m_pImp->m_nAspect ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + svt::EmbeddedObjectRef::IsGLChart(m_pImp->m_xObject) ) { m_pImp->m_xObject->changeState( embed::EmbedStates::INPLACE_ACTIVE ); if (bHasFocus) @@ -1081,7 +1082,8 @@ void SfxInPlaceClient::ResetObject() try { m_pImp->m_bUIActive = false; - if ( m_pImp->m_xObject->getStatus( m_pImp->m_nAspect ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) + if ( (m_pImp->m_xObject->getStatus( m_pImp->m_nAspect ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + svt::EmbeddedObjectRef::IsGLChart(m_pImp->m_xObject) ) m_pImp->m_xObject->changeState( embed::EmbedStates::INPLACE_ACTIVE ); else { diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index 4d1b807a6ed7..e02c25f00321 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -44,6 +44,7 @@ #include <unotools/pathoptions.hxx> #include <svtools/miscopt.hxx> #include <svtools/soerr.hxx> +#include <svtools/embedhlp.hxx> #include <basic/basmgr.hxx> #include <basic/sbuno.hxx> @@ -1735,7 +1736,8 @@ void SfxViewShell::CheckIPClient_Impl( SfxInPlaceClient *pIPClient, const Rectan bool bAlwaysActive = ( ( pIPClient->GetObjectMiscStatus() & embed::EmbedMisc::EMBED_ACTIVATEIMMEDIATELY ) != 0 ); bool bActiveWhenVisible = - ( ( pIPClient->GetObjectMiscStatus() & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) != 0 ); + ( (( pIPClient->GetObjectMiscStatus() & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) != 0 ) || + svt::EmbeddedObjectRef::IsGLChart(pIPClient->GetObject())); // this method is called when either a client is created or the "Edit/Plugins" checkbox is checked if ( !pIPClient->IsObjectInPlaceActive() && pImp->m_bPlugInsActive ) diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx index 365c316a5267..e4218fc53313 100644 --- a/svtools/source/misc/embedhlp.cxx +++ b/svtools/source/misc/embedhlp.cxx @@ -801,6 +801,11 @@ bool EmbeddedObjectRef::IsChart(const ::com::sun::star::uno::Reference < ::com:: return false; } +bool EmbeddedObjectRef::IsGLChart(const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xObj) +{ + return IsChart(xObj) && getenv("CHART_DUMMY_FACTORY"); +} + void EmbeddedObjectRef::UpdateReplacement() { GetReplacement( true ); @@ -834,6 +839,14 @@ bool EmbeddedObjectRef::IsChart() const return EmbeddedObjectRef::IsChart(mpImpl->mxObj); } +bool EmbeddedObjectRef::IsGLChart() const +{ + if (!mpImpl->mxObj.is()) + return false; + + return EmbeddedObjectRef::IsGLChart(mpImpl->mxObj); +} + // MT: Only used for getting accessible attributes, which are not localized OUString EmbeddedObjectRef::GetChartType() { diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx index 10f6490f7d3a..ca819b573376 100644 --- a/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx +++ b/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx @@ -98,7 +98,8 @@ namespace sdr } SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView(); - if(pPageView && (nMiscStatus & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE)) + if(pPageView && ((nMiscStatus & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + xObjRef.IsGLChart())) { // connect plugin object pPageView->GetView().DoConnect(const_cast< SdrOle2Obj* >(&rSdrOle2)); diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx index 42482ff61454..d25480c88e88 100644 --- a/svx/source/svdraw/svdoole2.cxx +++ b/svx/source/svdraw/svdoole2.cxx @@ -396,7 +396,8 @@ void SAL_CALL SdrLightEmbeddedClient_Impl::activatingUI() uno::Reference< embed::XEmbeddedObject > xObject = pObj->GetObjRef(); try { - if ( xObject->getStatus( pObj->GetAspect() ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) + if ( (xObject->getStatus( pObj->GetAspect() ) & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + svt::EmbeddedObjectRef::IsGLChart(xObject) ) xObject->changeState( embed::EmbedStates::INPLACE_ACTIVE ); else { diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 36d04c1de386..87d635187c9e 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -1055,8 +1055,9 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons ::svt::EmbeddedObjectRef::DrawPaintReplacement( Rectangle( aPosition, aSize ), pOLENd->GetOLEObj().GetCurrentPersistName(), pOut ); sal_Int64 nMiscStatus = pOLENd->GetOLEObj().GetOleRef()->getStatus( pOLENd->GetAspect() ); - if ( !bPrn && pShell->ISA( SwCrsrShell ) && - nMiscStatus & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE ) + if ( !bPrn && pShell->ISA( SwCrsrShell ) && ( + (nMiscStatus & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE) || + pOLENd->GetOLEObj().GetObject().IsGLChart())) { const SwFlyFrm *pFly = FindFlyFrm(); assert( pFly != NULL ); |