summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2021-09-13 16:24:23 +0200
committerEike Rathke <erack@redhat.com>2021-09-13 17:18:30 +0200
commit37e2e99f7a3018dce0337b582b139d41e1e81a9a (patch)
treed2c4a68b9cf18cd6b07c075a1cd2646e27a3fdf6
parentb307eee222023a2ea0f45bb0cf21db206deb52b4 (diff)
Explicitly set cursor position for x11 'gen' backend, tdf#144457 follow-up
... (and other backends?) Change-Id: If45b83080aa2df50ef27ad282eb6fa1d4a022703 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122037 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
-rw-r--r--cui/source/options/optgdlg.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 92acc1bc0001..5424c03622f4 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -1789,7 +1789,13 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
}
}
if (bModified)
- rEd.set_text(aBuf.makeStringAndClear()); // This even keeps the cursor position so all good.
+ {
+ // gtk3 keeps the cursor position on equal length set_text() but at
+ // least the 'gen' backend does not and resets to 0.
+ const int nCursorPos = rEd.get_position();
+ rEd.set_text(aBuf.makeStringAndClear());
+ rEd.set_position(nCursorPos);
+ }
if (bValid)
rEd.set_message_type(weld::EntryMessageType::Normal);
else