sw/source/ui/misc/outline.cxx |   27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

New commits:
commit 718e49e1f4281cfc77d05e537aab0cf701f6e341
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Tue Feb 19 23:24:58 2019 +0100
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Wed Mar 13 17:00:40 2019 +0100

    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
    (cherry picked from commit 684fcf2fce915f3e3e553c67fb57bdbfc8f159d5)
    Reviewed-on: https://gerrit.libreoffice.org/68843
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    (cherry picked from commit 7f2322afea3b25bc45f438b8ae9d4977ac378c1c)
    Reviewed-on: https://gerrit.libreoffice.org/69172
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx
index c23794861501..23bb9c66ca4d 100644
--- a/sw/source/ui/misc/outline.cxx
+++ b/sw/source/ui/misc/outline.cxx
@@ -822,13 +822,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;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to