[Libreoffice-commits] core.git: 3 commits - sw/source vcl/source vcl/win

Michael Stahl mstahl at redhat.com
Wed Apr 6 09:50:55 UTC 2016


 sw/source/core/txtnode/ndtxt.cxx       |    6 +++---
 vcl/source/font/PhysicalFontFamily.cxx |    7 ++++++-
 vcl/win/gdi/salfont.cxx                |    4 ++--
 3 files changed, 11 insertions(+), 6 deletions(-)

New commits:
commit 5a7b0d2c7f3a305eb5f4eb629c0a08a256cc9ae3
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Apr 6 00:26:39 2016 +0200

    vcl: lstrcpynW actually takes length *including* null terminator
    
    ... which is surprising, but means that these arguments are too small.
    
    Change-Id: I9c58e7fefa30d19c701df4f04043ddb474b28986

diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx
index 6819d21..4b844c3 100644
--- a/vcl/win/gdi/salfont.cxx
+++ b/vcl/win/gdi/salfont.cxx
@@ -1376,7 +1376,7 @@ HFONT WinSalGraphics::ImplDoSetFont( FontSelectPattern* i_pFont, float& o_rFontS
     && !bImplSalCourierScalable
     && bImplSalCourierNew
     && (ImplSalWICompareAscii( aLogFont.lfFaceName, "Courier" ) == 0) )
-        lstrcpynW( aLogFont.lfFaceName, L"Courier New", 11 );
+        lstrcpynW( aLogFont.lfFaceName, L"Courier New", 12 );
 
     // #i47675# limit font requests to MAXFONTHEIGHT
     // TODO: share MAXFONTHEIGHT font instance
@@ -1413,7 +1413,7 @@ HFONT WinSalGraphics::ImplDoSetFont( FontSelectPattern* i_pFont, float& o_rFontS
     {
         // the selected font doesn't work => try a replacement
         // TODO: use its font fallback instead
-        lstrcpynW( aLogFont.lfFaceName, L"Courier New", 11 );
+        lstrcpynW( aLogFont.lfFaceName, L"Courier New", 12 );
         aLogFont.lfPitchAndFamily = FIXED_PITCH;
         HFONT hNewFont2 = CreateFontIndirectW( &aLogFont );
         SelectFont( getHDC(), hNewFont2 );
commit 2f89245fb7e1c94bed49dde10b08ab1cf41b597b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Apr 6 00:20:28 2016 +0200

    tdf#98989: vcl: fix handling of non-scalable fonts like "Courier"
    
    For a VirtualDevice only scalable fonts are cloned, but for non-scalable
    bitmap fonts still an empty PhysicalFontFamily with no PhysicalFontFace
    is created, which causes text to disappear (height 0).
    
    Suppress creation of such families like it was done in LO 4.3, so that
    the fall-back can handle it and map "Courier" to "Courier New".
    
    (regression from 8d6697587776136f3121733e1c29d4200720dbd9)
    
    Change-Id: I6542a3f7a01bdf46ae2bcf328fa04064f7f86332

diff --git a/vcl/source/font/PhysicalFontFamily.cxx b/vcl/source/font/PhysicalFontFamily.cxx
index 8cc63fa..b2eb5ce 100644
--- a/vcl/source/font/PhysicalFontFamily.cxx
+++ b/vcl/source/font/PhysicalFontFamily.cxx
@@ -264,7 +264,7 @@ void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontColle
                                               bool bEmbeddable ) const
 {
     OUString aFamilyName = GetEnglishSearchFontName( GetFamilyName() );
-    PhysicalFontFamily* pFamily = rFontCollection.FindOrCreateFontFamily( aFamilyName );
+    PhysicalFontFamily* pFamily(nullptr);
 
     for( std::vector< PhysicalFontFace* >::const_iterator it=maFontFaces.begin(); it != maFontFaces.end(); ++it )
     {
@@ -275,6 +275,11 @@ void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontColle
         if( bEmbeddable && !pFoundFontFace->CanEmbed() && !pFoundFontFace->CanSubset() )
             continue;
 
+        if (!pFamily)
+        {   // tdf#98989 lazy create as family without faces won't work
+            pFamily = rFontCollection.FindOrCreateFontFamily(aFamilyName);
+        }
+        assert(pFamily);
         PhysicalFontFace* pClonedFace = pFoundFontFace->Clone();
 
 #if OSL_DEBUG_LEVEL > 0
commit e6371f31623a25cc556922735459274ed48e7b7c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Apr 1 12:37:22 2016 +0200

    sw: fix typo
    
    Change-Id: I1f439382dd11a4082cce20e410ecdbcdab31adb9

diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index d9faf9d..7693a83 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -4070,7 +4070,7 @@ bool SwTextNode::AreListLevelIndentsApplicable() const
 */
 bool SwTextNode::GetListTabStopPosition( long& nListTabStopPosition ) const
 {
-    bool bListTanStopPositionProvided( false );
+    bool bListTabStopPositionProvided(false);
 
     const SwNumRule* pNumRule = GetNum() ? GetNum()->GetNumRule() : nullptr;
     if ( pNumRule && HasVisibleNumberingOrBullet() && GetActualListLevel() >= 0 )
@@ -4079,7 +4079,7 @@ bool SwTextNode::GetListTabStopPosition( long& nListTabStopPosition ) const
         if ( rFormat.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT &&
              rFormat.GetLabelFollowedBy() == SvxNumberFormat::LISTTAB )
         {
-            bListTanStopPositionProvided = true;
+            bListTabStopPositionProvided = true;
             nListTabStopPosition = rFormat.GetListtabPos();
 
             if ( getIDocumentSettingAccess()->get(DocumentSettingId::TABS_RELATIVE_TO_INDENT) )
@@ -4099,7 +4099,7 @@ bool SwTextNode::GetListTabStopPosition( long& nListTabStopPosition ) const
         }
     }
 
-    return bListTanStopPositionProvided;
+    return bListTabStopPositionProvided;
 }
 
 OUString SwTextNode::GetLabelFollowedBy() const


More information about the Libreoffice-commits mailing list