diff --git a/resources/qml/TimelineBubbleMessageStyle.qml b/resources/qml/TimelineBubbleMessageStyle.qml
index 2e0381315093ed72cba0353e51f0857eb1887c79..3b0f2d94b150373993e77967eab756b39102bfe6 100644
--- a/resources/qml/TimelineBubbleMessageStyle.qml
+++ b/resources/qml/TimelineBubbleMessageStyle.qml
@@ -317,6 +317,23 @@ TimelineEvent {
             }
 
         },
+        Item {
+            // We need this item to grab events, that otherwise would go to the TextArea in the main item. If we don't have this, it would trigger a right click menu on KDE...
+            // https://invent.kde.org/frameworks/qqc2-desktop-style/-/blob/9d71fe874186009f76d392e203d9fa25a49f8be7/org.kde.desktop/TextArea.qml#L55
+            
+            anchors.fill: gridContainer
+            anchors.topMargin: replyRow.height
+            TapHandler {
+
+                acceptedButtons: Qt.RightButton
+                acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus | PointerDevice.TouchPad
+                gesturePolicy: TapHandler.ReleaseWithinBounds
+
+                onSingleTapped: (event) => {
+                    messageContextMenu.show(wrapper.eventId, wrapper.threadId, wrapper.type, wrapper.isSender, wrapper.isEncrypted, wrapper.isEditable, wrapper.main.hoveredLink, wrapper.main.copyText);
+                }
+            }
+        },
         Reactions {
             id: reactionRow
 
diff --git a/resources/qml/TimelineDefaultMessageStyle.qml b/resources/qml/TimelineDefaultMessageStyle.qml
index 348083238f65962d9e5d98e7f0a83e8b64c9e7dc..331a5dfec1d14c44c37b123a15440c1ba6aa0627 100644
--- a/resources/qml/TimelineDefaultMessageStyle.qml
+++ b/resources/qml/TimelineDefaultMessageStyle.qml
@@ -75,16 +75,20 @@ TimelineEvent {
             z: 4
         }, 
         Rectangle {
+            // this looks better without margins
             anchors.fill: gridContainer
             color: (Settings.messageHoverHighlight && messageHover.hovered) ? palette.alternateBase : "transparent"
 
-            // this looks better without margins
+            // This is partially duplicated by a later handler, however we need this to handle the remaining events around the reply.
             TapHandler {
                 acceptedButtons: Qt.RightButton
                 acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus | PointerDevice.TouchPad
                 gesturePolicy: TapHandler.ReleaseWithinBounds
 
-                onSingleTapped: messageContextMenu.show(wrapper.eventId, wrapper.threadId, wrapper.type, wrapper.isSender, wrapper.isEncrypted, wrapper.isEditable, wrapper.main.hoveredLink, wrapper.main.copyText)
+                onSingleTapped: (event) => {
+                    messageContextMenu.show(wrapper.eventId, wrapper.threadId, wrapper.type, wrapper.isSender, wrapper.isEncrypted, wrapper.isEditable, wrapper.main.hoveredLink, wrapper.main.copyText);
+                    event.accepted = true;
+                }
             }
         },
         Rectangle {
@@ -312,6 +316,23 @@ TimelineEvent {
                 timestamp: wrapper.timestamp
                 room: wrapper.room
             },
+        Item {
+            // We need this item to grab events, that otherwise would go to the TextArea in the main item. If we don't have this, it would trigger a right click menu on KDE...
+            // https://invent.kde.org/frameworks/qqc2-desktop-style/-/blob/9d71fe874186009f76d392e203d9fa25a49f8be7/org.kde.desktop/TextArea.qml#L55
+            
+            anchors.fill: gridContainer
+            anchors.topMargin: replyRow.height
+            TapHandler {
+
+                acceptedButtons: Qt.RightButton
+                acceptedDevices: PointerDevice.Mouse | PointerDevice.Stylus | PointerDevice.TouchPad
+                gesturePolicy: TapHandler.ReleaseWithinBounds
+
+                onSingleTapped: (event) => {
+                    messageContextMenu.show(wrapper.eventId, wrapper.threadId, wrapper.type, wrapper.isSender, wrapper.isEncrypted, wrapper.isEditable, wrapper.main.hoveredLink, wrapper.main.copyText);
+                }
+            }
+        },
         Reactions {
             id: reactionRow