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() {