[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - sc/source vcl/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Apr 2 00:49:31 PDT 2015


 sc/source/ui/view/gridwin4.cxx |    7 ++++++-
 vcl/source/window/paint.cxx    |   10 ++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

New commits:
commit e1aa279188b72f6677b01c0fc2f89852bfa0c283
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Apr 2 09:46:22 2015 +0200

    vcl tiled rendering: fix Writer/Impress invalidation rectangle
    
    Both Writer and Impress disable map mode during tiled rendering, i.e.
    IsMapModeEnabled() always returns false. Nevertheless, using
    GetMapMode(), it's possible to query what was the map unit before
    disabling the map mode, which is twips for Writer and mm100 for Impress.
    
    If Calc needs anything special here, that's better to be done in
    ScGridWindow::LogicInvalidate().
    
    Change-Id: I2c10df47d32b80d2cef2b6e6587872fe4126a3f5

diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 108f36f..c5fe4ea 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -984,7 +984,12 @@ void ScGridWindow::LogicInvalidate(const Rectangle* pRectangle)
     if (!pRectangle)
         sRectangle = "EMPTY";
     else
-        sRectangle = pRectangle->toString();
+    {
+        Rectangle aRectangle(*pRectangle);
+        if (!IsMapModeEnabled())
+            aRectangle = OutputDevice::LogicToLogic(aRectangle, MAP_PIXEL, MAP_TWIP);
+        sRectangle = aRectangle.toString();
+    }
 
     pViewData->GetDocument()->GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, sRectangle.getStr());
 }
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index e619226..f977378 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -862,14 +862,8 @@ void Window::Invalidate( sal_uInt16 nFlags )
 /// Converts rRectangle from MM100 to twips based on the map mode of rWindow.
 void lcl_toTwips(const Window& rWindow, Rectangle& rRectangle)
 {
-    // When dragging shapes the map mode is disabled.
-    if (rWindow.IsMapModeEnabled())
-    {
-        if (rWindow.GetMapMode().GetMapUnit() == MAP_100TH_MM)
-            rRectangle = OutputDevice::LogicToLogic(rRectangle, MAP_100TH_MM, MAP_TWIP);
-    }
-    else
-        rRectangle = OutputDevice::LogicToLogic(rRectangle, MAP_PIXEL, MAP_TWIP);
+    if (rWindow.GetMapMode().GetMapUnit() == MAP_100TH_MM)
+        rRectangle = OutputDevice::LogicToLogic(rRectangle, MAP_100TH_MM, MAP_TWIP);
 }
 
 void Window::Invalidate( const Rectangle& rRect, sal_uInt16 nFlags )


More information about the Libreoffice-commits mailing list