vcl/source/control/edit.cxx |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 8622dc09954a1a26661e3524c99e7ed0f456cf6e
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Mar 26 15:57:46 2019 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Tue Mar 26 22:14:30 2019 +0100

    Related: tdf#123291 treat overwrite like a selection of 1
    
    for input into ImplTruncateToMaxLen like we do for the
    following erase
    
    Change-Id: I8cd02ff1ba76f61ddc614922068cbe2bc9bc4cb8
    Reviewed-on: https://gerrit.libreoffice.org/69763
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index 72325742cac3..a4302902a3c8 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -793,13 +793,19 @@ void Edit::ImplInsertText( const OUString& rStr, const 
Selection* pNewSel, bool
     aSelection.Justify();
 
     OUString aNewText( ImplGetValidString( rStr ) );
-    ImplTruncateToMaxLen( aNewText, aSelection.Len() );
+
+    // as below, if there's no selection, but we're in overwrite mode and not 
beyond
+    // the end of the existing text then that's like a selection of 1
+    auto nSelectionLen = aSelection.Len();
+    if (!nSelectionLen && !mbInsertMode && aSelection.Max() < 
maText.getLength())
+        nSelectionLen = 1;
+    ImplTruncateToMaxLen( aNewText, nSelectionLen );
 
     ImplClearLayoutData();
 
     if ( aSelection.Len() )
         maText.remove( static_cast<sal_Int32>(aSelection.Min()), 
static_cast<sal_Int32>(aSelection.Len()) );
-    else if ( !mbInsertMode && (aSelection.Max() < maText.getLength()) )
+    else if (!mbInsertMode && aSelection.Max() < maText.getLength())
         maText.remove( static_cast<sal_Int32>(aSelection.Max()), 1 );
 
     // take care of input-sequence-checking now
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to