editeng/source/editeng/editeng.cxx |   29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

New commits:
commit a16b44481e3c5582dfb581f769e07ab94e8ac44b
Author: Mark Hung <mark...@gmail.com>
Date:   Sat Dec 30 01:00:26 2017 +0800

    tdf#114732 backspace can only make bullet invisible.
    
    It toggled the bullet on unexptectedly before connecting
    two paragraphs, which made undo recover the incorrect result.
    
    Change-Id: I83104d72fef95d8bd95e8e0e3bca4a063b69a450
    Reviewed-on: https://gerrit.libreoffice.org/47181
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Mark Hung <mark...@gmail.com>

diff --git a/editeng/source/editeng/editeng.cxx 
b/editeng/source/editeng/editeng.cxx
index 2a3ccb3d52bb..c896e9aeb2f7 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -1121,28 +1121,29 @@ bool EditEngine::PostKeyEvent( const KeyEvent& 
rKeyEvent, EditView* pEditView, v
                     if (pFmt && nCode == KEY_BACKSPACE &&
                         !aCurSel.HasRange() && aCurSel.Min().GetIndex() == 0)
                     {
-                        // if the bullet is still visible just do not paint it 
from
-                        // now on and that will be all. Otherwise continue as 
usual.
+                        // if the bullet is still visible, just make it 
invisible.
+                        // Otherwise continue as usual.
 
 
                         sal_Int32 nPara = pImpEditEngine->GetEditDoc().GetPos( 
pNode );
                         SfxBoolItem aBulletState( 
pImpEditEngine->GetParaAttrib( nPara, EE_PARA_BULLETSTATE ) );
-                        bool bBulletIsVisible = aBulletState.GetValue();
 
-                        // just toggling EE_PARA_BULLETSTATE should be fine 
for both cases...
-                        aBulletState.SetValue( !bBulletIsVisible );
-                        SfxItemSet aSet( pImpEditEngine->GetParaAttribs( nPara 
) );
-                        aSet.Put( aBulletState );
-                        pImpEditEngine->SetParaAttribs( nPara, aSet );
+                        if ( aBulletState.GetValue() )
+                        {
+
+                            aBulletState.SetValue( false );
+                            SfxItemSet aSet( pImpEditEngine->GetParaAttribs( 
nPara ) );
+                            aSet.Put( aBulletState );
+                            pImpEditEngine->SetParaAttribs( nPara, aSet );
 
-                        // have this and the following paragraphs formatted 
and repainted.
-                        // (not painting a numbering in the list may cause the 
following
-                        // numberings to have different numbers than before 
and thus the
-                        // length may have changed as well )
-                        pImpEditEngine->FormatAndUpdate( 
pImpEditEngine->GetActiveView() );
+                            // have this and the following paragraphs 
formatted and repainted.
+                            // (not painting a numbering in the list may cause 
the following
+                            // numberings to have different numbers than 
before and thus the
+                            // length may have changed as well )
+                            pImpEditEngine->FormatAndUpdate( 
pImpEditEngine->GetActiveView() );
 
-                        if (bBulletIsVisible)   // bullet just turned 
invisible...
                             break;
+                        }
                     }
 
                     sal_uInt8 nDel = 0;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to