diff options
| author | Andrew Branson <andrew.branson@jolla.com> | 2026-02-13 15:41:14 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@jolla.com> | 2026-02-13 15:41:14 +0100 |
| commit | 7ffdb036406bd15e75159597434e70cbaa542b8e (patch) | |
| tree | 50f1ebc7c3abbde80ed2386cb3c980bb115c50fa | |
| parent | ce4447024641c0ee793539d79a6d9be7a34a000b (diff) | |
Fix juggling housekeeping and interaction menu
| -rw-r--r-- | eventsview-plugins/eventsview-plugin-mastodon/MastodonFeedItem.qml | 33 |
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 + } + } } |
