mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 12:38:48 +03:00
Fix flickering in hover menu
This commit is contained in:
parent
fd041ce58d
commit
9c622b60b9
1 changed files with 13 additions and 16 deletions
|
@ -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 {
|
||||||
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 {
|
||||||
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 {
|
||||||
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)
|
||||||
|
|
Loading…
Reference in a new issue