tdf#94138 fix printing of edit form fields

There are 2 bugs:

- In Window::GetDrawPixelFont we asked for the font to the
current window, which didn't work correctly when printing. The
device itself should provide the font and not the window.

- In paint method the font wasn't setup correctly which should
happen before painting by calling ApplySettings. The effect of
this is that print preview didn't show the correct font for the
edit control and similar when you copy + paste the edit control.
The work around for this is to call ApplySettings again.

Change-Id: I74960355823c71c1d5a18a82bbc86561a3c4b760
This commit is contained in:
Tomaž Vajngerl
2015-10-22 19:03:01 +02:00
parent 8e49a523c9
commit 825b3df7f1
2 changed files with 3 additions and 1 deletions

View File

@@ -506,6 +506,8 @@ void Edit::ImplRepaint(vcl::RenderContext& rRenderContext, const Rectangle& rRec
if (!IsReallyVisible())
return;
ApplySettings(rRenderContext);
OUString aText = ImplGetText();
sal_Int32 nLen = aText.getLength();

View File

@@ -654,7 +654,7 @@ Size Window::CalcOutputSize( const Size& rWinSz ) const
vcl::Font Window::GetDrawPixelFont(OutputDevice* pDev) const
{
vcl::Font aFont = GetPointFont(*const_cast<Window*>(this));
vcl::Font aFont = GetPointFont(*pDev);
Size aFontSize = aFont.GetSize();
MapMode aPtMapMode(MAP_POINT);
aFontSize = pDev->LogicToPixel( aFontSize, aPtMapMode );