From 9d8cc5c9072b3a5b7ee4f5ec22fabcee96eff30b Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Thu, 24 Nov 2022 23:01:07 +0100 Subject: [PATCH] Fix cursor position when inserting emoji BUG: 456641 --- src/qml/Component/ChatBox/ChatBar.qml | 1 + src/qml/Component/ChatBox/ChatBox.qml | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/qml/Component/ChatBox/ChatBar.qml b/src/qml/Component/ChatBox/ChatBar.qml index 72641f4e7..eaf1cfa48 100644 --- a/src/qml/Component/ChatBox/ChatBar.qml +++ b/src/qml/Component/ChatBox/ChatBar.qml @@ -15,6 +15,7 @@ QQC2.ToolBar { property alias inputFieldText: inputField.text property alias textField: inputField property alias emojiPaneOpened: emojiButton.checked + property alias cursorPosition: inputField.cursorPosition signal closeAllTriggered() signal inputFieldForceActiveFocusTriggered() diff --git a/src/qml/Component/ChatBox/ChatBox.qml b/src/qml/Component/ChatBox/ChatBox.qml index c07cb0c47..022d00fad 100644 --- a/src/qml/Component/ChatBox/ChatBox.qml +++ b/src/qml/Component/ChatBox/ChatBox.qml @@ -66,7 +66,7 @@ ColumnLayout { Kirigami.Theme.colorSet: Kirigami.Theme.View contentItem: EmojiPicker { textArea: chatBar.textField - onChosen: addText(emoji) + onChosen: insertText(emoji) } } @@ -128,12 +128,10 @@ ColumnLayout { } } - function addText(text) { - chatBox.inputFieldText = inputFieldText + text - } - function insertText(str) { - chatBox.inputFieldText = inputFieldText.substr(0, inputField.cursorPosition) + str + inputFieldText.substr(inputField.cursorPosition) + let index = chatBar.cursorPosition; + chatBox.inputFieldText = inputFieldText.substr(0, chatBar.cursorPosition) + str + inputFieldText.substr(chatBar.cursorPosition); + chatBar.cursorPosition = index + str.length; } function focusInputField() {