fix: show formation menu in middle of selection or above double click
This commit is contained in:
parent
8b3ce83d00
commit
4af1135f6c
|
@ -781,6 +781,8 @@ Rectangle {
|
||||||
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
|
|
||||||
TextArea {
|
TextArea {
|
||||||
|
property var lastClick: 0
|
||||||
|
|
||||||
id: messageInputField
|
id: messageInputField
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
font.pixelSize: 15
|
font.pixelSize: 15
|
||||||
|
@ -803,11 +805,18 @@ Rectangle {
|
||||||
selectionColor: Style.current.primarySelectionColor
|
selectionColor: Style.current.primarySelectionColor
|
||||||
persistentSelection: true
|
persistentSelection: true
|
||||||
onReleased: function (event) {
|
onReleased: function (event) {
|
||||||
|
const now = Date.now()
|
||||||
if (messageInputField.selectedText.trim() !== "") {
|
if (messageInputField.selectedText.trim() !== "") {
|
||||||
let x = event.x - (textFormatMenu.width / 2)
|
// If it's a double click, just check the mouse position
|
||||||
|
// If it's a mouse select, use the start and end position average)
|
||||||
|
let x = now < messageInputField.lastClick + 500 ? x = event.x :
|
||||||
|
(messageInputField.cursorRectangle.x + event.x) / 2
|
||||||
|
x -= textFormatMenu.width / 2
|
||||||
|
|
||||||
textFormatMenu.popup(x, -messageInputField.height-2)
|
textFormatMenu.popup(x, -messageInputField.height-2)
|
||||||
messageInputField.forceActiveFocus();
|
messageInputField.forceActiveFocus();
|
||||||
}
|
}
|
||||||
|
lastClick = now
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusTextFormatMenu {
|
StatusTextFormatMenu {
|
||||||
|
|
Loading…
Reference in New Issue