tdf#138457 Cursor position wrong when using functions in a writer table

Change-Id: I70156d8492afbab2c5993e1627a024ef8e07c492
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108176
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/sw/source/uibase/inc/inputwin.hxx b/sw/source/uibase/inc/inputwin.hxx
index 6698e19..a5b97af 100644
--- a/sw/source/uibase/inc/inputwin.hxx
+++ b/sw/source/uibase/inc/inputwin.hxx
@@ -79,7 +79,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)