Skip to content
Snippets Groups Projects
Verified Commit 9c622b60 authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Fix flickering in hover menu

parent fd041ce5
No related branches found
No related tags found
No related merge requests found
Pipeline #2778 passed
...@@ -56,7 +56,7 @@ Item { ...@@ -56,7 +56,7 @@ Item {
anchors.rightMargin: scrollbar.interactive? scrollbar.width : 0 anchors.rightMargin: scrollbar.interactive? scrollbar.width : 0
Rectangle { Control {
//closePolicy: Popup.NoAutoClose //closePolicy: Popup.NoAutoClose
id: messageActions id: messageActions
...@@ -64,27 +64,22 @@ Item { ...@@ -64,27 +64,22 @@ Item {
property Item attached: null property Item attached: null
property alias model: row.model property alias model: row.model
// use comma to update on scroll // use comma to update on scroll
property var attachedPos: chat.contentY, chat.count, attached ? chat.mapFromItem(attached, attached ? attached.width - width : 0, -height) : null property var attachedPos: chat.contentY, attached ? chat.mapFromItem(attached, attached ? attached.width - width : 0, -height) : null
readonly property int padding: Nheko.paddingSmall padding: Nheko.paddingSmall
visible: Settings.buttonsInTimeline && !!attached && (attached.hovered || messageActionHover.hovered) visible: Settings.buttonsInTimeline && !!attached && (attached.hovered || hovered)
x: attached ? attachedPos.x : 0 x: attached ? attachedPos.x : 0
y: attached ? attachedPos.y : 0 y: attached ? attachedPos.y : 0
z: 10 z: 10
height: row.implicitHeight + padding * 2
width: row.implicitWidth + padding * 2 background: Rectangle {
color: Nheko.colors.window color: Nheko.colors.window
border.color: Nheko.colors.buttonText border.color: Nheko.colors.buttonText
border.width: 1 border.width: 1
radius: padding radius: padding
HoverHandler {
id: messageActionHover
grabPermissions: PointerHandler.CanTakeOverFromAnything
} }
Row { contentItem: Row {
id: row id: row
property var model property var model
...@@ -479,7 +474,7 @@ Item { ...@@ -479,7 +474,7 @@ Item {
TimelineRow { TimelineRow {
id: 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 proportionalHeight: wrapper.proportionalHeight
type: chat.model, wrapper.type type: chat.model, wrapper.type
...@@ -512,17 +507,19 @@ Item { ...@@ -512,17 +507,19 @@ Item {
status: wrapper.status status: wrapper.status
relatedEventCacheBuster: wrapper.relatedEventCacheBuster relatedEventCacheBuster: wrapper.relatedEventCacheBuster
y: section.visible && section.active ? section.y + section.height : 0 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 (!Settings.mobileMode && hovered) {
if (!messageActionHover.hovered) { if (!messageActions.hovered) {
messageActions.attached = timelinerow; messageActions.attached = timelinerow;
messageActions.model = timelinerow; messageActions.model = timelinerow;
} }
} }
} }
}
Connections { Connections {
function onMovementEnded() { function onMovementEnded() {
if (y + height + 2 * chat.spacing > chat.contentY + chat.height && y < chat.contentY + chat.height) if (y + height + 2 * chat.spacing > chat.contentY + chat.height && y < chat.contentY + chat.height)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment