1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-06 05:28:29 -04:00

fix(Hover): refactor & update hover tracking w/context menus

Fixes #2737
This commit is contained in:
purian23
2026-07-04 00:08:58 -04:00
parent 2861cc89c6
commit c554d973ef
30 changed files with 297 additions and 27 deletions
@@ -8,6 +8,7 @@ Item {
id: clipboardContent
required property var modal
property var transientSurfaceTracker: null
property alias searchField: searchField
property alias clipboardListView: clipboardListView
@@ -66,7 +67,7 @@ Item {
contextMenu.hide();
}
readonly property bool contextMenuActive: contextMenu.openState
readonly property bool contextMenuActive: contextMenu.renderActive
anchors.fill: parent
@@ -74,6 +75,7 @@ Item {
id: contextMenu
modal: clipboardContent.modal
parentHandler: clipboardContent
transientSurfaceTracker: clipboardContent.transientSurfaceTracker
}
Column {
@@ -23,6 +23,8 @@ Item {
property real anchorY: 0
property bool openState: false
property bool renderActive: false
property var transientSurfaceTracker: null
readonly property alias contextWindow: menuWindow
readonly property bool blurActive: renderActive && openState && BlurService.enabled && Theme.connectedSurfaceBlurEnabled
readonly property bool hasPinnedDuplicate: !!entry && !entry.pinned && ClipboardService.getPinnedEntryByHash(entry.hash) !== null
@@ -90,6 +92,18 @@ Item {
readonly property real effectiveMenuHeight: Math.min(maxMenuHeight, naturalMenuHeight)
readonly property bool menuScrolls: naturalMenuHeight > effectiveMenuHeight + 0.5
onRenderActiveChanged: transientSurfaceTracker?.setActive(root, renderActive, contextWindow)
Component.onDestruction: transientSurfaceTracker?.unregister(root)
Connections {
target: root.transientSurfaceTracker
ignoreUnknownSignals: true
function onCloseRequested() {
root.hide();
}
}
TextMetrics {
id: menuTextMetrics
text: root.longestMenuText
@@ -9,6 +9,7 @@ FocusScope {
property var clearConfirmDialog: null
property var surfaceHost: null
property var transientSurfaceTracker: null
property string activeTab: "recents"
property bool showKeyboardHints: false
@@ -198,6 +199,7 @@ FocusScope {
id: historyContent
anchors.fill: parent
modal: root
transientSurfaceTracker: root.transientSurfaceTracker
}
}
@@ -130,6 +130,7 @@ DankModal {
content: Component {
ClipboardHistoryContent {
surfaceHost: clipboardHistoryModal
transientSurfaceTracker: clipboardHistoryModal.transientSurfaceTracker
clearConfirmDialog: clearConfirmDialog
onCloseRequested: clipboardHistoryModal.hide()
onInstantCloseRequested: clipboardHistoryModal.instantHide()
@@ -141,6 +141,7 @@ DankPopout {
LayoutMirroring.childrenInherit: true
surfaceHost: root
transientSurfaceTracker: root.transientSurfaceTracker
clearConfirmDialog: clearConfirmDialog
onCloseRequested: root.hide()
onInstantCloseRequested: root.hide()