From a9a73ab24d0bc0e79b726529a83338fa750a8a33 Mon Sep 17 00:00:00 2001 From: James Graham Date: Sun, 8 Feb 2026 16:29:25 +0000 Subject: [PATCH] Disallow event menu in edit mode --- src/messagecontent/TextComponent.qml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/messagecontent/TextComponent.qml b/src/messagecontent/TextComponent.qml index bcf49c2b7..efea5cf0c 100644 --- a/src/messagecontent/TextComponent.qml +++ b/src/messagecontent/TextComponent.qml @@ -79,8 +79,8 @@ QQC2.TextArea { event.accepted = Message.contentModel.keyHelper.handleKey(event.key, event.modifiers); } - onFocusChanged: if (focus && !root.currentFocus) { - Message.contentModel.setFocusRow(root.index, true) + onFocusChanged: if (focus && !currentFocus && editable) { + Message.contentModel.setFocusRow(index, true) } ListView.onReused: Qt.binding(() => !hasSpoiler.test(display)) @@ -124,6 +124,9 @@ QQC2.TextArea { (QQC2.ApplicationWindow.window as Main).hoverLinkIndicator.text = ""; } + // To prevent the dfault QQC2 desktop style menu inconjuction with https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/507 + onPressed: event => event.accepted = true; + HoverHandler { cursorShape: root.hoveredLink || (!(root.componentAttributes?.spoilerRevealed ?? false) && root.hasSpoiler) ? Qt.PointingHandCursor : Qt.IBeamCursor } @@ -132,23 +135,26 @@ QQC2.TextArea { onTapped: root.Message.contentModel.toggleSpoiler(root.Message.contentFilterModel.mapToSource(root.Message.contentFilterModel.index(root.index, 0))) } TapHandler { - enabled: !root.hoveredLink + enabled: !root.hoveredLink && !root.editable acceptedButtons: Qt.LeftButton acceptedDevices: PointerDevice.TouchScreen onLongPressed: { - const event = root.Message.room.findEvent(root.eventId); - RoomManager.viewEventMenu(root.QQC2.Overlay.overlay, event, root.Message.room, root.Message.selectedText, root.Message.hoveredLink); + requestMenu(); } } TapHandler { + enabled: !root.editable acceptedButtons: Qt.RightButton acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad | PointerDevice.Stylus - gesturePolicy: TapHandler.WithinBounds onTapped: { - const event = root.Message.room.findEvent(root.eventId); - RoomManager.viewEventMenu(root.QQC2.Overlay.overlay, event, root.Message.room, root.Message.selectedText, root.Message.hoveredLink); + requestMenu(); } } + function requestMenu() { + const event = root.Message.room.findEvent(root.eventId); + RoomManager.viewEventMenu(root.QQC2.Overlay.overlay, event, root.Message.room, root.Message.selectedText, root.Message.hoveredLink); + } + background: null }