summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2017-04-07 11:58:52 +0200
committerJan Holesovsky <kendy@collabora.com>2017-04-07 15:51:38 +0000
commit5991304ede33b112b7700b2b9f0e18f6c523a0e8 (patch)
treed5170d519e30b970a8d35911e5f6d25db53ec5fb
parente4364376b32c58edc0eaba4c587abe7de0eb9987 (diff)
LOK - Calc: charts are misplaced
We need to update the transformation primitive wrapping the chart when the grid offset is changed. Change-Id: I42179fdc7cc806c5757a125881f08279767ccbcc Reviewed-on: https://gerrit.libreoffice.org/36255 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx2
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrole2obj.cxx7
2 files changed, 8 insertions, 1 deletions
diff --git a/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx b/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
index 8d94c6115aa6..a00b95b1661d 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
@@ -33,6 +33,8 @@ class ViewContactOfSdrOle2Obj : public ViewContactOfSdrRectObj
private:
// #i123539# allow local buffering of chart data (if chart)
drawinglayer::primitive2d::Primitive2DReference mxChartContent;
+ // used to check if we need to re-calc the transformation
+ Point maGridOffset;
protected:
// Create a Object-Specific ViewObjectContact, set ViewContact and
diff --git a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
index 874b982c1dbf..d70b9b48761a 100644
--- a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
@@ -100,12 +100,17 @@ drawinglayer::primitive2d::Primitive2DContainer ViewContactOfSdrOle2Obj::createP
// #i123539# allow buffering and reuse of local chart data to not need to rebuild it
// on every ViewObjectContact::getPrimitive2DSequence call. TTTT: Not needed for
// aw080, there this mechanism alraedy works differently
- if(mxChartContent.is())
+ if(mxChartContent.is()
+ // check if we need to update the transformation primitive wrapping the chart
+ && maGridOffset == GetOle2Obj().GetGridOffset())
{
xContent = mxChartContent;
}
else
{
+ // update grid offset
+ const_cast< ViewContactOfSdrOle2Obj* >(this)->maGridOffset = GetOle2Obj().GetGridOffset();
+
// try to get chart primitives and chart range directly from xChartModel
basegfx::B2DRange aChartContentRange;
const drawinglayer::primitive2d::Primitive2DContainer aChartSequence(