From a3f181a93df3cb5f4d95cb0139da639b26922a90 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Tue, 1 Dec 2015 17:44:23 +0100 Subject: tdf#94138 Use correct fonts for multiline edit when printing When drawing a multiline edit we need to use a different device (current window) to get the correct font and adjust for the Draw method's input device. Change-Id: I7993790c02d10e4283c7a4e2caefff0c7747e978 (cherry picked from commit 6c41727484a04ab89005ffb052937dae5d7dc223) Reviewed-on: https://gerrit.libreoffice.org/20398 Reviewed-by: Andras Timar Reviewed-by: Miklos Vajna Reviewed-by: Christian Lohmaier Tested-by: Christian Lohmaier --- vcl/source/edit/vclmedit.cxx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx index b6044dc6ab25..525f847ab8ed 100644 --- a/vcl/source/edit/vclmedit.cxx +++ b/vcl/source/edit/vclmedit.cxx @@ -1362,11 +1362,17 @@ void VclMultiLineEdit::DataChanged( const DataChangedEvent& rDCEvt ) void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) { - ImplInitSettings( true, true, true ); + ImplInitSettings(true, true, true); Point aPos = pDev->LogicToPixel( rPos ); Size aSize = pDev->LogicToPixel( rSize ); - vcl::Font aFont = pImpVclMEdit->GetTextWindow()->GetDrawPixelFont( pDev ); + + vcl::Font aFont = pImpVclMEdit->GetTextWindow()->GetPointFont(*this); + Size aFontSize = aFont.GetSize(); + MapMode aPtMapMode(MAP_POINT); + aFontSize = pDev->LogicToPixel(aFontSize, aPtMapMode); + aFont.SetSize(aFontSize); + aFont.SetTransparent( true ); OutDevType eOutDevType = pDev->GetOutDevType(); -- cgit v1.2.3