summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2022-03-07 23:16:18 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2022-03-07 23:16:18 +0100
commit9c622b60b9cbf5a05fe3215cd3f6bdad872d3419 (patch)
treec26457120bcd278ce0ea2ac01a47b01739e3cba8
parentfd041ce58dd827ce5e15de79e5bcf8044d89dc6d (diff)
Fix flickering in hover menu
-rw-r--r--resources/qml/MessageView.qml29
1 files changed, 13 insertions, 16 deletions
diff --git a/resources/qml/MessageView.qml b/resources/qml/MessageView.qml
index 55860ad6..bbd198ab 100644
--- a/resources/qml/MessageView.qml
+++ b/resources/qml/MessageView.qml
@@ -56,7 +56,7 @@ Item {
anchors.rightMargin: scrollbar.interactive? scrollbar.width : 0
- Rectangle {
+ Control {
//closePolicy: Popup.NoAutoClose
id: messageActions
@@ -64,27 +64,22 @@ Item {
property Item attached: null
property alias model: row.model
// use comma to update on scroll
- property var attachedPos: chat.contentY, chat.count, attached ? chat.mapFromItem(attached, attached ? attached.width - width : 0, -height) : null
- readonly property int padding: Nheko.paddingSmall
+ property var attachedPos: chat.contentY, attached ? chat.mapFromItem(attached, attached ? attached.width - width : 0, -height) : null
+ padding: Nheko.paddingSmall
- visible: Settings.buttonsInTimeline && !!attached && (attached.hovered || messageActionHover.hovered)
+ visible: Settings.buttonsInTimeline && !!attached && (attached.hovered || hovered)
x: attached ? attachedPos.x : 0
y: attached ? attachedPos.y : 0
z: 10
- height: row.implicitHeight + padding * 2
- width: row.implicitWidth + padding * 2
+
+ background: Rectangle {
color: Nheko.colors.window
border.color: Nheko.colors.buttonText
border.width: 1
radius: padding
-
- HoverHandler {
- id: messageActionHover
-
- grabPermissions: PointerHandler.CanTakeOverFromAnything
}
- Row {
+ contentItem: Row {
id: row
property var model
@@ -479,7 +474,7 @@ Item {
TimelineRow {
id: timelinerow
- hovered: messageActionHover.hovered ? (messageActions.model != undefined && messageActions.model.eventId == timelinerow.eventId) : wrapper.hovered
+ hovered: messageActions.hovered ? (messageActions.model != undefined && messageActions.model == timelinerow) : wrapper.hovered
proportionalHeight: wrapper.proportionalHeight
type: chat.model, wrapper.type
@@ -512,17 +507,19 @@ Item {
status: wrapper.status
relatedEventCacheBuster: wrapper.relatedEventCacheBuster
y: section.visible && section.active ? section.y + section.height : 0
- }
- onHoveredChanged: {
+ onHoveredChanged: {
+ console.log("Hover changed: " + hovered + " w: " + wrapper.hovered + " h: "+ messageActions.hovered + " obj: " + timelinerow)
if (!Settings.mobileMode && hovered) {
- if (!messageActionHover.hovered) {
+ if (!messageActions.hovered) {
messageActions.attached = timelinerow;
messageActions.model = timelinerow;
}
}
}
+ }
+
Connections {
function onMovementEnded() {
if (y + height + 2 * chat.spacing > chat.contentY + chat.height && y < chat.contentY + chat.height)