summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/tabvwsh2.cxx
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-11 07:34:10 +0200
commita910703bcbd2d8a767aff3f50185233baf601a32 (patch)
tree057c8699ec3e41d662ee263b4ca2c1695593d136 /sc/source/ui/view/tabvwsh2.cxx
parent539e4124739feffdceecb5207fdc2428396a9dd4 (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> (cherry picked from commit 345f9480618d0867f6b42a83a7ae1d62c8ef9c0c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98161 Tested-by: Jenkins
Diffstat (limited to 'sc/source/ui/view/tabvwsh2.cxx')
-rw-r--r--sc/source/ui/view/tabvwsh2.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index cee19352fdd8..d2efc23d5559 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -330,7 +330,11 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
}
else
{
- aInsertPos = GetViewData().getLOKVisibleArea().Center();
+ ScViewData& rViewData = GetViewData();
+ aInsertPos = rViewData.getLOKVisibleArea().Center();
+ if (comphelper::LibreOfficeKit::isCompatFlagSet(
+ comphelper::LibreOfficeKit::Compat::scPrintTwipsMsgs))
+ aInsertPos = rViewData.GetPrintTwipsPosFromTileTwips(aInsertPos);
aInsertPos.setX(sc::TwipsToHMM(aInsertPos.X()));
aInsertPos.setY(sc::TwipsToHMM(aInsertPos.Y()));