diff options
author | Jan Holesovsky <kendy@collabora.com> | 2017-04-24 21:14:38 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2017-04-25 09:01:04 +0200 |
commit | 96b1e852c34d44cd07e3bf5a39ae810f135d61d5 (patch) | |
tree | 55ad9eb597cebe941c210a2b0057fece99479efc /svx | |
parent | 53ec01b67eb3e7020800f92a63860d332e73b1dd (diff) |
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 <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/36915
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/sdrpagewindow.cxx | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx index b88a1c48ffa8..c5e28ed56e93 100644 --- a/svx/source/svdraw/sdrpagewindow.cxx +++ b/svx/source/svdraw/sdrpagewindow.cxx @@ -409,23 +409,7 @@ void SdrPageWindow::RedrawLayer(const SdrLayerID* pId, // 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 tools::Rectangle aRect100thMM( - static_cast<long>(floor(rRange.getMinX())), - static_cast<long>(floor(rRange.getMinY())), - static_cast<long>(ceil(rRange.getMaxX())), - static_cast<long>(ceil(rRange.getMaxY()))); - - const tools::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())); @@ -450,6 +434,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 tools::Rectangle aRect100thMM( + static_cast<long>(floor(rRange.getMinX())), + static_cast<long>(floor(rRange.getMinY())), + static_cast<long>(ceil(rRange.getMaxX())), + static_cast<long>(ceil(rRange.getMaxY()))); + + const tools::Rectangle aRectTwips = OutputDevice::LogicToLogic(aRect100thMM, MapUnit::Map100thMM, MapUnit::MapTwip); + + if (SfxViewShell* pViewShell = SfxViewShell::Current()) + SfxLokHelper::notifyInvalidation(pViewShell, aRectTwips.toString()); + } } // ObjectContact section |