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
This commit is contained in:
Miklos Vajna
2015-04-02 15:10:50 +02:00
parent c768fc150b
commit a9373a3fec
3 changed files with 13 additions and 11 deletions

View File

@@ -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();
}

View File

@@ -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());
}

View File

@@ -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);
}
}