summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embeddedobj/Library_embobj.mk1
-rw-r--r--embeddedobj/source/general/docholder.cxx10
-rw-r--r--include/svtools/embedhlp.hxx2
-rw-r--r--sfx2/source/view/ipclient.cxx6
-rw-r--r--sfx2/source/view/viewsh.cxx4
-rw-r--r--svtools/source/misc/embedhlp.cxx13
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx3
-rw-r--r--svx/source/svdraw/svdoole2.cxx3
-rw-r--r--sw/source/core/doc/notxtfrm.cxx5
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 );