From f62d14ea33d9b936d58820300a5bee58b6cfa08a Mon Sep 17 00:00:00 2001 From: Jan Holesovsky Date: Mon, 24 Apr 2017 21:14:38 +0200 Subject: lok: When we actually have the OutputDevice, prefer that. Writer invalidation functionality depends on this actually. Change-Id: I0933c56ff3999a09118112ccf49bf00062c42444 Reviewed-on: https://gerrit.libreoffice.org/36914 Reviewed-by: Andras Timar Tested-by: Andras Timar --- svx/source/svdraw/sdrpagewindow.cxx | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx index fcd8cbc678a1..9b7e9b1b8ad5 100644 --- a/svx/source/svdraw/sdrpagewindow.cxx +++ b/svx/source/svdraw/sdrpagewindow.cxx @@ -406,23 +406,7 @@ void SdrPageWindow::RedrawLayer( const SdrLayerID* pId, sdr::contact::ViewObject // Invalidate call, used from ObjectContact(OfPageView) in InvalidatePartOfView(...) void SdrPageWindow::InvalidatePageWindow(const basegfx::B2DRange& rRange) { - if (comphelper::LibreOfficeKit::isActive()) - { - // we don't really have a paint window with LOK; OTOH we know that the - // drawinglayer units are 100ths of mm, so they are easy to convert to - // twips - const Rectangle aRect100thMM( - static_cast(floor(rRange.getMinX())), - static_cast(floor(rRange.getMinY())), - static_cast(ceil(rRange.getMaxX())), - static_cast(ceil(rRange.getMaxY()))); - - const Rectangle aRectTwips = OutputDevice::LogicToLogic(aRect100thMM, MapUnit::Map100thMM, MapUnit::MapTwip); - - if (SfxViewShell* pViewShell = SfxViewShell::Current()) - SfxLokHelper::notifyInvalidation(pViewShell, aRectTwips.toString()); - } - else if (GetPageView().IsVisible() && GetPaintWindow().OutputToWindow()) + if (GetPageView().IsVisible() && GetPaintWindow().OutputToWindow()) { const SvtOptionsDrawinglayer aDrawinglayerOpt; vcl::Window& rWindow(static_cast< vcl::Window& >(GetPaintWindow().GetOutputDevice())); @@ -447,6 +431,22 @@ void SdrPageWindow::InvalidatePageWindow(const basegfx::B2DRange& rRange) rWindow.Invalidate(aVCLDiscreteRectangle, InvalidateFlags::NoErase); rWindow.EnableMapMode(bWasMapModeEnabled); } + else if (comphelper::LibreOfficeKit::isActive()) + { + // we don't really have to have a paint window with LOK; OTOH we know + // that the drawinglayer units are 100ths of mm, so they are easy to + // convert to twips + const Rectangle aRect100thMM( + static_cast(floor(rRange.getMinX())), + static_cast(floor(rRange.getMinY())), + static_cast(ceil(rRange.getMaxX())), + static_cast(ceil(rRange.getMaxY()))); + + const Rectangle aRectTwips = OutputDevice::LogicToLogic(aRect100thMM, MapUnit::Map100thMM, MapUnit::MapTwip); + + if (SfxViewShell* pViewShell = SfxViewShell::Current()) + SfxLokHelper::notifyInvalidation(pViewShell, aRectTwips.toString()); + } } // ObjectContact section -- cgit