summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@jolla.com>2026-02-13 15:41:14 +0100
committerAndrew Branson <andrew.branson@jolla.com>2026-02-13 15:41:14 +0100
commit7ffdb036406bd15e75159597434e70cbaa542b8e (patch)
tree50f1ebc7c3abbde80ed2386cb3c980bb115c50fa
parentce4447024641c0ee793539d79a6d9be7a34a000b (diff)
Fix juggling housekeeping and interaction menu
-rw-r--r--eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml33
1 files changed, 29 insertions, 4 deletions
diff --git a/eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml b/eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml
index b9eb3ce..c003950 100644
--- a/eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml
+++ b/eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml
@@ -30,6 +30,7 @@ SocialMediaFeedItem {
property bool isReblogged: _rebloggedOverride >= 0 ? _rebloggedOverride === 1 : reblogged
readonly property bool housekeeping: Lipstick.compositor.eventsLayer.housekeeping
readonly property bool lockScreenActive: Lipstick.compositor.lockScreenLayer.deviceIsLocked
+ property bool _pendingOpenActionMenu: false
property bool _contextMenuOpen: false
property var _actionMenu
property real _contextMenuHeight: (_contextMenuOpen && _actionMenu) ? _actionMenu.height : 0
@@ -50,10 +51,15 @@ SocialMediaFeedItem {
if (mouse) {
mouse.accepted = true
}
- Lipstick.compositor.eventsLayer.setHousekeeping(false)
- if (!housekeeping && !lockScreenActive) {
- _contextMenuOpen = false
- openActionMenu()
+ _pendingOpenActionMenu = !lockScreenActive
+ && postActions
+ && actionPostId().length > 0
+ && actionAccountId() >= 0
+ openActionMenuTimer.restart()
+ }
+ onHousekeepingChanged: {
+ if (housekeeping && _pendingOpenActionMenu) {
+ Lipstick.compositor.eventsLayer.setHousekeeping(false)
}
}
Component.onDestruction: {
@@ -421,4 +427,23 @@ SocialMediaFeedItem {
}
}
}
+
+ Timer {
+ id: openActionMenuTimer
+
+ interval: 0
+ repeat: false
+ onTriggered: {
+ if (item.lockScreenActive) {
+ item._pendingOpenActionMenu = false
+ return
+ }
+ Lipstick.compositor.eventsLayer.setHousekeeping(false)
+ if (item._pendingOpenActionMenu) {
+ item._contextMenuOpen = false
+ item.openActionMenu()
+ }
+ item._pendingOpenActionMenu = false
+ }
+ }
}