tdf#165706: Fix visualization of MultiFirmControls in EditMode
'Simple' FormControls were rendered correctly with SDPR active, but 'Multi' FormControls did not. Found an error regarding use of MapModes in that drawing code below in vcl that did not handle an evtl. set MapMode, corrected that. Change-Id: I51d7318c2950b7d70e3064ba628909cb17416bae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183196 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
This commit is contained in:
committed by
Armin Le Grand
parent
08cce3e642
commit
6a7e2f4ba5
@@ -1547,7 +1547,11 @@ void Window::ImplPaintToDevice( OutputDevice* i_pTargetOutDev, const Point& i_rP
|
||||
nDeltaX = GetOutDev()->mnOutWidth - nDeltaX - pChild->GetOutDev()->mnOutWidth;
|
||||
tools::Long nDeltaY = pChild->GetOutOffYPixel() - GetOutOffYPixel();
|
||||
Point aPos( i_rPos );
|
||||
Point aDelta( nDeltaX, nDeltaY );
|
||||
// tdf#165706 those delta values are in pixels, but aPos copied from
|
||||
// i_rPos *may* be in logical coordinates if a MapMode is set at
|
||||
// i_pTargetOutDev. To not mix values of different coordinate systems
|
||||
// it *needs* to be converted (which does nothing if no MapMode)
|
||||
Point aDelta( i_pTargetOutDev->PixelToLogic( Point( nDeltaX, nDeltaY )) );
|
||||
aPos += aDelta;
|
||||
pChild->ImplPaintToDevice( i_pTargetOutDev, aPos );
|
||||
}
|
||||
|
Reference in New Issue
Block a user