[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - vcl/qt5
Jan-Marek Glogowski (via logerrit)
logerrit at kemper.freedesktop.org
Wed May 8 13:18:37 UTC 2019
vcl/qt5/Qt5Widget.cxx | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
New commits:
commit 1b2aaed5e60e4e41f1d3475d6229d893d49bbeb7
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Fri May 3 21:16:49 2019 +0200
Commit: Katarina Behrens <Katarina.Behrens at cib.de>
CommitDate: Wed May 8 15:17:53 2019 +0200
tdf#123956 Qt5 IM update cursor position
This sets the cursor position to the one provided by the
QInputMethodEvent::Cursor attribute.
Change-Id: I4a99f9939b53c69631e45d41102bf9c7f53f0ff5
Reviewed-on: https://gerrit.libreoffice.org/71782
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
(cherry picked from commit 110fd705ad3ae35144aaa6e5d8249b7e35f2825f)
Reviewed-on: https://gerrit.libreoffice.org/71955
Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 62fae3736247..3bc310954cc8 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -469,10 +469,32 @@ void Qt5Widget::inputMethodEvent(QInputMethodEvent* pEvent)
{
aInputEvent.maText = toOUString(pEvent->preeditString());
aInputEvent.mnCursorPos = 0;
- sal_Int32 nLength = aInputEvent.maText.getLength();
+
+ const sal_Int32 nLength = aInputEvent.maText.getLength();
+ const QList<QInputMethodEvent::Attribute>& rAttrList = pEvent->attributes();
std::vector<ExtTextInputAttr> aTextAttrs(nLength, ExtTextInputAttr::Underline);
+
+ for (int i = 0; i < rAttrList.size(); ++i)
+ {
+ const QInputMethodEvent::Attribute& rAttr = rAttrList.at(i);
+ switch (rAttr.type)
+ {
+ case QInputMethodEvent::Cursor:
+ {
+ aInputEvent.mnCursorPos = rAttr.start;
+ if (rAttr.length == 0)
+ aInputEvent.mnCursorFlags |= EXTTEXTINPUT_CURSOR_INVISIBLE;
+ break;
+ }
+ default:
+ SAL_WARN("vcl.qt5", "Unhandled QInputMethodEvent attribute: "
+ << static_cast<int>(rAttr.type));
+ break;
+ }
+ }
if (nLength)
aInputEvent.mpTextAttr = &aTextAttrs[0];
+
m_pFrame->CallCallback(SalEvent::ExtTextInput, &aInputEvent);
pEvent->accept();
}
More information about the Libreoffice-commits
mailing list