diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-12-22 14:14:39 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-12-23 14:58:55 +0100 |
commit | 3870ca340537294fd1168abe9592f903140d6459 (patch) | |
tree | 861194664e6ff38f687f44dc32c3776516a6a743 /sw | |
parent | c386994e78f69cb2e9babf42bb54bdfa1f8bd28e (diff) |
tdf#138457 Cursor position wrong when using functions in a writer table
Change-Id: I70156d8492afbab2c5993e1627a024ef8e07c492
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108195
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/uibase/inc/inputwin.hxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sw/source/uibase/inc/inputwin.hxx b/sw/source/uibase/inc/inputwin.hxx index 08dcea729fce..ab18e2118cc3 100644 --- a/sw/source/uibase/inc/inputwin.hxx +++ b/sw/source/uibase/inc/inputwin.hxx @@ -74,7 +74,15 @@ public: void replace_selection(const OUString& rText) { + int nStartPos, nEndPos; + m_xWidget->get_selection_bounds(nStartPos, nEndPos); + if (nStartPos > nEndPos) + std::swap(nStartPos, nEndPos); + m_xWidget->replace_selection(rText); + + nStartPos = nStartPos + rText.getLength(); + m_xWidget->select_region(nStartPos, nStartPos); } void select_region(int nStartPos, int nEndPos) |