vcl/source/control/fmtfield.cxx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
New commits: commit f17a9467e8dcba7fc624373aa81f5b4997665c03 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Nov 14 12:22:50 2018 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Nov 14 17:54:52 2018 +0100 don't select all new text if there was no old text Change-Id: I087f396e4de196af57974e4462f2a4e7553a6293 Reviewed-on: https://gerrit.libreoffice.org/63370 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/control/fmtfield.cxx b/vcl/source/control/fmtfield.cxx index 5a6948e793a6..d443f2c1a8e3 100644 --- a/vcl/source/control/fmtfield.cxx +++ b/vcl/source/control/fmtfield.cxx @@ -483,16 +483,14 @@ void FormattedField::ImplSetTextImpl(const OUString& rNew, Selection const * pNe if ((nNewLen > nCurrentLen) && (aSel.Max() == nCurrentLen)) { // new text is longer and the cursor is behind the last char if (aSel.Min() == 0) - { // the whole text was selected -> select the new text on the whole, too - aSel.Max() = nNewLen; + { if (!nCurrentLen) - { // there wasn't really a previous selection (as there was no previous text), we're setting a new one -> check the selection options - SelectionOptions nSelOptions = GetSettings().GetStyleSettings().GetSelectionOptions(); - if (nSelOptions & SelectionOptions::ShowFirst) - { // selection should be from right to left -> swap min and max - aSel.Min() = aSel.Max(); - aSel.Max() = 0; - } + { // there wasn't really a previous selection (as there was no previous text) + aSel.Max() = 0; + } + else + { // the whole text was selected -> select the new text on the whole, too + aSel.Max() = nNewLen; } } else if (aSel.Max() == aSel.Min()) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits