From 8e516422b7e98f605c20cee1703a959a52cba993 Mon Sep 17 00:00:00 2001 From: James Graham Date: Sun, 22 Feb 2026 12:27:06 +0000 Subject: [PATCH] Make sure the default menu of textArea isn't thrown for non editable TextComponents. Note: I know this is horrible but it's all we got until discussions in QQC2-Desktop-Style are resolved. --- src/messagecontent/TextComponent.qml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/messagecontent/TextComponent.qml b/src/messagecontent/TextComponent.qml index 3b88c58ad..40ae4932e 100644 --- a/src/messagecontent/TextComponent.qml +++ b/src/messagecontent/TextComponent.qml @@ -44,6 +44,7 @@ QQC2.TextArea { * @brief Whether the component should be editable. */ required property bool editable + onEditableChanged: manageDefaultMenus() /** * @brief The attributes of the component. @@ -126,8 +127,7 @@ 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; + Component.onCompleted: manageDefaultMenus() HoverHandler { cursorShape: root.hoveredLink || (!(root.componentAttributes?.spoilerRevealed ?? false) && root.hasSpoiler) ? Qt.PointingHandCursor : Qt.IBeamCursor @@ -158,5 +158,17 @@ QQC2.TextArea { RoomManager.viewEventMenu(root.QQC2.Overlay.overlay, event, root.Message.room, root.Message.selectedText, root.Message.hoveredLink); } + // TODO - Remove this once the state of TextArea is sorted in QQC2 + // This is horrible I know I hate it but currently seemingly the only way to stop the default + // menus in TextArea see https://invent.kde.org/frameworks/qqc2-desktop-style/-/issues/15 + function manageDefaultMenus(): void { + for (let i = 0; i < resources.length; i++) { + if (resources[i] instanceof TapHandler) { + (resources[i] as TapHandler).enabled = root.editable; + return; + } + } + } + background: null }