summaryrefslogtreecommitdiff
path: root/sw/source/ui/misc
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2019-02-19 23:24:58 +0100
committerMichael Stahl <Michael.Stahl@cib.de>2019-03-07 11:00:02 +0100
commit684fcf2fce915f3e3e553c67fb57bdbfc8f159d5 (patch)
treefefbb29ef588d9e33702a0b0e9cd659d87428eeb /sw/source/ui/misc
parent6d5fe4dca30452b8c64834aaf175d10497b75f71 (diff)
tdf#123547: do the same as in lcl_DrawBullet from cui/numpages.cxx
See bt https://bugs.documentfoundation.org/attachment.cgi?id=149389 It seems the method from cui/numpages.cxx takes more things into account At least, it doesn't crash for the attachment of this tracker Change-Id: I05ca0b019ac483890bea4acdbb695d73b660e638 Reviewed-on: https://gerrit.libreoffice.org/68033 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Diffstat (limited to 'sw/source/ui/misc')
-rw-r--r--sw/source/ui/misc/outline.cxx27
1 files changed, 22 insertions, 5 deletions
diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx
index 9a84f103fddf..06f3b29e32bc 100644
--- a/sw/source/ui/misc/outline.cxx
+++ b/sw/source/ui/misc/outline.cxx
@@ -823,13 +823,30 @@ static long lcl_DrawBullet(vcl::RenderContext* pVDev, const SwNumFormat& rFormat
{
vcl::Font aTmpFont(pVDev->GetFont());
- vcl::Font aFont(*rFormat.GetBulletFont());
- aFont.SetFontSize(rSize);
+ // via Uno it's possible that no font has been set!
+ vcl::Font aFont(rFormat.GetBulletFont() ? *rFormat.GetBulletFont() : aTmpFont);
+ Size aTmpSize(rSize);
+ aTmpSize.setWidth( aTmpSize.Width() * ( rFormat.GetBulletRelSize()) );
+ aTmpSize.setWidth( aTmpSize.Width() / 100 ) ;
+ aTmpSize.setHeight( aTmpSize.Height() * ( rFormat.GetBulletRelSize()) );
+ aTmpSize.setHeight( aTmpSize.Height() / 100 ) ;
+ // in case of a height of zero it is drawn in original height
+ if(!aTmpSize.Height())
+ aTmpSize.setHeight( 1 );
+ aFont.SetFontSize(aTmpSize);
aFont.SetTransparent(true);
- pVDev->SetFont(aFont);
+ Color aBulletColor = rFormat.GetBulletColor();
+ if(aBulletColor == COL_AUTO)
+ aBulletColor = pVDev->GetFillColor().IsDark() ? COL_WHITE : COL_BLACK;
+ else if(aBulletColor == pVDev->GetFillColor())
+ aBulletColor.Invert();
+ aFont.SetColor(aBulletColor);
+ pVDev->SetFont( aFont );
OUString aText(rFormat.GetBulletChar());
- pVDev->DrawText(Point(nXStart, nYStart), aText);
- const long nRet = pVDev->GetTextWidth(aText);
+ long nY = nYStart;
+ nY -= ((aTmpSize.Height() - rSize.Height())/ 2);
+ pVDev->DrawText( Point(nXStart, nY), aText );
+ long nRet = pVDev->GetTextWidth(aText);
pVDev->SetFont(aTmpFont);
return nRet;