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:
@@ -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();
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user