[Libreoffice-commits] core.git: cui/source svx/source

Justin Luth justin_luth at sil.org
Tue Nov 15 10:28:08 UTC 2016


 cui/source/tabpages/textattr.cxx |   10 +++++++---
 svx/source/svdraw/svdotext.cxx   |    2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

New commits:
commit 098f7a4ac2b6f309a45d29f1b68bea18418b9ee7
Author: Justin Luth <justin_luth at sil.org>
Date:   Wed Nov 9 19:53:49 2016 +0300

    tdf#34467 - FitToFrame: stretch text to fill drawing obj
    
    Help for Fit To Frame says "Resizes the text to fit the entire area
    of the drawing or text object".
    
    reverts commit b7628798ec1a966c97a64d7cf0aa9f3859b78bef
    and partially addresses the problem of "Shrink font automatically
    when text overflows" by treating text as "Autofit" while it is being
    edited.
    It's not WYSIWYG, but good enough, and maybe better.
    
    Since that part of the change prevents any way of setting ::Autofit,
    I also changed the default setting to Autofit instead of NONE, since there
    is no good reason why text should be allowed to spill outside of a textbox.
    For those who REALLY want that odd behaviour, they can use
    .uno:TextFitToSize (Ctrl-Shift-F8) to toggle between "stretch" and "none".
    
    Change-Id: I8313a82cbea82f11fad0f50d966fc77874977da9
    Reviewed-on: https://gerrit.libreoffice.org/30727
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx
index 3058bb9..912722a 100644
--- a/cui/source/tabpages/textattr.cxx
+++ b/cui/source/tabpages/textattr.cxx
@@ -312,7 +312,11 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
     {
         SdrFitToSizeType eFTS = (SdrFitToSizeType)
                     static_cast<const SdrTextFitToSizeTypeItem&>( rAttrs->Get( SDRATTR_TEXT_FITTOSIZE ) ).GetValue();
-        m_pTsbFitToSize->SetState( eFTS == SdrFitToSizeType::NONE ? TRISTATE_FALSE : TRISTATE_TRUE );
+        if( eFTS == SdrFitToSizeType::Autofit || eFTS == SdrFitToSizeType::NONE )
+            m_pTsbFitToSize->SetState( TRISTATE_FALSE );
+        else
+            m_pTsbFitToSize->SetState( TRISTATE_TRUE );
+
         m_pTsbFitToSize->EnableTriState( false );
     }
     else
@@ -410,8 +414,8 @@ bool SvxTextAttrPage::FillItemSet( SfxItemSet* rAttrs)
             default: ; //prevent warning
                 OSL_FAIL( "svx::SvxTextAttrPage::FillItemSet(), unhandled state!" );
                 SAL_FALLTHROUGH;
-            case TRISTATE_FALSE: eFTS = SdrFitToSizeType::NONE; break;
-            case TRISTATE_TRUE: eFTS = SdrFitToSizeType::Autofit; break;
+            case TRISTATE_FALSE: eFTS = SdrFitToSizeType::Autofit; break;
+            case TRISTATE_TRUE: eFTS = SdrFitToSizeType::Proportional; break;
         }
         rAttrs->Put( SdrTextFitToSizeTypeItem( eFTS ) );
     }
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx
index 7dd1b8d..f052d69 100644
--- a/svx/source/svdraw/svdotext.cxx
+++ b/svx/source/svdraw/svdotext.cxx
@@ -1936,7 +1936,7 @@ void SdrTextObj::onEditOutlinerStatusEvent( EditStatus* pEditStatus )
         {
             AdjustTextFrameWidthAndHeight();
         }
-        else if (IsAutoFit() && !mbInDownScale)
+        else if ( (IsAutoFit() || IsFitToSize()) && !mbInDownScale)
         {
             assert(pEdtOutl);
             mbInDownScale = true;


More information about the Libreoffice-commits mailing list