summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-04-02 15:10:50 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-04-07 09:18:14 +0200
commita9373a3fec4f1bd9b51c40666a12ffd9eb7357a2 (patch)
tree7a930e7ab1e30ccc2e4a746bf4fc4f4561787d09
parentc768fc150b62b1b1cd85f23efb5b5e964c89290b (diff)
vcl tiled rendering: don't do anything with disabled mapmode and mm100 mapunit
Turns out Impress wants an mm100 -> twips conversion in this case, while Calc wants a pixel -> twips one, so there isn't anything here that can be abstracted in VCL. Change-Id: Ieb961afa97affbf682e13c0a56585396ae09f552
-rw-r--r--sc/source/ui/view/gridwin4.cxx8
-rw-r--r--sd/source/ui/view/sdwindow.cxx7
-rw-r--r--vcl/source/window/paint.cxx9
3 files changed, 13 insertions, 11 deletions
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index e414e10abdeb..81c413642933 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -987,7 +987,13 @@ void ScGridWindow::LogicInvalidate(const Rectangle* pRectangle)
else
{
Rectangle aRectangle(*pRectangle);
- if (!IsMapModeEnabled())
+ // When dragging shapes the map mode is disabled.
+ if (IsMapModeEnabled())
+ {
+ if (GetMapMode().GetMapUnit() == MAP_100TH_MM)
+ aRectangle = OutputDevice::LogicToLogic(aRectangle, MAP_100TH_MM, MAP_TWIP);
+ }
+ else
aRectangle = OutputDevice::LogicToLogic(aRectangle, MAP_PIXEL, MAP_TWIP);
sRectangle = aRectangle.toString();
}
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
index 1268596c7042..8506ec0d492e 100644
--- a/sd/source/ui/view/sdwindow.cxx
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -1003,7 +1003,12 @@ void Window::LogicInvalidate(const Rectangle* pRectangle)
if (!pRectangle)
sRectangle = "EMPTY";
else
- sRectangle = pRectangle->toString();
+ {
+ Rectangle aRectangle(*pRectangle);
+ if (GetMapMode().GetMapUnit() == MAP_100TH_MM)
+ aRectangle = OutputDevice::LogicToLogic(aRectangle, MAP_100TH_MM, MAP_TWIP);
+ sRectangle = aRectangle.toString();
+ }
mpViewShell->GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, sRectangle.getStr());
}
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index f977378a1ab2..1384dfe3d8f2 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -859,13 +859,6 @@ void Window::Invalidate( sal_uInt16 nFlags )
LogicInvalidate(0);
}
-/// Converts rRectangle from MM100 to twips based on the map mode of rWindow.
-void lcl_toTwips(const Window& rWindow, Rectangle& rRectangle)
-{
- 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 )
{
@@ -879,7 +872,6 @@ void Window::Invalidate( const Rectangle& rRect, sal_uInt16 nFlags )
vcl::Region aRegion( aRect );
ImplInvalidate( &aRegion, nFlags );
Rectangle aLogicRectangle(rRect);
- lcl_toTwips(*this, aLogicRectangle);
LogicInvalidate(&aLogicRectangle);
}
}
@@ -902,7 +894,6 @@ void Window::Invalidate( const vcl::Region& rRegion, sal_uInt16 nFlags )
{
ImplInvalidate( &aRegion, nFlags );
Rectangle aLogicRectangle = rRegion.GetBoundRect();
- lcl_toTwips(*this, aLogicRectangle);
LogicInvalidate(&aLogicRectangle);
}
}