const OUString& GetChartTableName() const { return msChartTableName; }
void SetChartTableName( const OUString& rNm ) { msChartTableName = rNm; }
+
+
+ // react on visual change (invalidate)
+ void SetChanged();
};
/// Inline methods from Node.hxx
#include <cntfrm.hxx>
#include <frmatr.hxx>
#include <ndole.hxx>
+#include <viewsh.hxx>
#include <DocumentSettingManager.hxx>
#include <IDocumentLinksAdministration.hxx>
-
+#include <IDocumentLayoutAccess.hxx>
#include <comphelper/classids.hxx>
#include <vcl/graph.hxx>
#include <sot/formats.hxx>
}
pOleNode->GetNewReplacement();
+ pOleNode->SetChanged();
+
return SUCCESS;
}
return bIsChart;
}
+// react on visual change (invalidate)
+void SwOLENode::SetChanged()
+{
+ SwFrame* pFrame(getLayoutFrame(nullptr));
+
+ if(nullptr == pFrame)
+ {
+ return;
+ }
+
+ const SwRect aFrameArea(pFrame->getFrameArea());
+ SwViewShell* pVSh(GetDoc()->getIDocumentLayoutAccess().GetCurrentViewShell());
+
+ if(nullptr == pVSh)
+ {
+ return;
+ }
+
+ for(SwViewShell& rShell : pVSh->GetRingContainer())
+ {
+ SET_CURR_SHELL(&rShell);
+
+ if(rShell.VisArea().IsOver(aFrameArea) && OUTDEV_WINDOW == rShell.GetOut()->GetOutDevType())
+ {
+ // invalidate instead of painting
+ rShell.GetWin()->Invalidate(aFrameArea.SVRect());
+ }
+ }
+}
+
namespace { class DeflateThread; }
/// Holder for local data for a parallel-executed task to load a chart model