summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2020-06-18 18:09:19 +0530
committerDennis Francis <dennis.francis@collabora.com>2020-07-06 18:05:59 +0200
commit345f9480618d0867f6b42a83a7ae1d62c8ef9c0c (patch)
tree045ecf7e88a644535680d101888e31694a00f9ee /svx
parent711c45449847fb95e8ee68ff578389ea903c0378 (diff)
scPrintTwipsMsgs: Use print logical coordinates for draw objects
as a result LOK_CALLBACK_GRAPHIC(_VIEW)_SELECTION messages will now be in print-twips. For tile-rendering, it needs the pixel-aligned coordinates of each object. The translation of print coordinates to pixel-aligned coordinates can be done behind the scenes by the ViewContact/ObjectContact/ViewObjectContact objects associated with the draw object which uses the cached "grid-offset" for each object (introduced in the patch "Refactor calc non-linear ViewToDevice transform"). For doing this, a subclass of FmFormView with a specialized "createViewSpecificObjectContact" method is used for tile-rendering. The createViewSpecificObjectContact creates a "proxy" object-contact object that delegates the grid-offsets queries to the actual ScDrawView generated ObjectContact. This is needed because currently there is no way to share the ObjectContact/ViewObjectContact instances between different SdrPaintWindow's without making changes ~everywhere. Change-Id: Ifdfb623c8d6dd81700ec4a5dfeeb6b2391a96154 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98166 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/sdr/contact/viewobjectcontact.cxx1
-rw-r--r--svx/source/svdraw/svdmrkv.cxx3
2 files changed, 3 insertions, 1 deletions
diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx b/svx/source/sdr/contact/viewobjectcontact.cxx
index d15ba27dd9f9..882b911a8fab 100644
--- a/svx/source/sdr/contact/viewobjectcontact.cxx
+++ b/svx/source/sdr/contact/viewobjectcontact.cxx
@@ -478,6 +478,7 @@ void ViewObjectContact::resetGridOffset()
// also reset sequence to get a re-calculation when GridOffset changes
mxPrimitive2DSequence.clear();
+ maObjectRange.reset();
}
}}
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index 326de3db561f..5b3a77e3e5a8 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -50,6 +50,7 @@
#include <svx/sdr/table/tablecontroller.hxx>
#include <svx/sdr/overlay/overlayselection.hxx>
#include <svx/sdr/contact/viewcontact.hxx>
+#include <svx/sdr/contact/viewobjectcontact.hxx>
#include <svx/sdrpaintwindow.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svx/sdrhittesthelper.hxx>
@@ -2039,7 +2040,7 @@ bool SdrMarkView::getPossibleGridOffsetForSdrObject(
const sdr::contact::ViewObjectContact& rVOC(pObj->GetViewContact().GetViewObjectContact(
const_cast<sdr::contact::ObjectContact&>(rObjectContact)));
- rObjectContact.calculateGridOffsetForViewOjectContact(rOffset, rVOC);
+ rOffset = rVOC.getGridOffset();
return !rOffset.equalZero();
}