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

fix(dash): resolve pointer cursor hover issue in connected mode (#2845)

* fix(dash): cursor not changing to pointer in Connected Mode (#2831)

Replaces the full-screen background dismissal MouseArea in
DankPopoutConnected.qml with four edge strips that exclude
the popup body. The full-screen MouseArea at z:-1 was
suppressing child cursorShape propagation on Wayland when
combined with the full-screen input mask.

Blame: the connected popout architecture itself (the issue
does not repro in Separate Mode where background dismissal
lives in a separate PanelWindow).

* fix(dash): resolve pointer cursor hover issue in connected mode

(cherry picked from commit 3f5a54aa88)
This commit is contained in:
Huỳnh Thiện Lộc
2026-07-14 01:58:02 +07:00
committed by bbedward
parent fcda17f517
commit 7f37799e53
3 changed files with 54 additions and 17 deletions
@@ -226,6 +226,13 @@ DankPopout {
LayoutMirroring.enabled: I18n.isRtl
LayoutMirroring.childrenInherit: true
MouseArea {
anchors.fill: parent
z: -1
enabled: root.__dropdownType !== 0
onClicked: root.__hideDropdowns()
}
implicitWidth: Math.max(700, pages.implicitWidth + (Theme.spacingM * 2))
implicitHeight: contentColumn.height + Theme.spacingM * 2
color: "transparent"
@@ -6,6 +6,7 @@ import qs.Widgets
Item {
id: root
visible: dropdownType !== 0
LayoutMirroring.enabled: I18n.isRtl
LayoutMirroring.childrenInherit: true
@@ -582,10 +583,4 @@ Item {
}
}
MouseArea {
anchors.fill: parent
z: -1
enabled: dropdownType !== 0
onClicked: closeRequested()
}
}
+46 -11
View File
@@ -996,18 +996,53 @@ Item {
height: root.renderedAlignedHeight + contentContainer.verticalConnectorExtent * 2
}
MouseArea {
anchors.fill: parent
enabled: shouldBeVisible && backgroundInteractive
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
Item {
id: backgroundClickCatcher
z: -1
onClicked: mouse => {
const clickX = mouse.x;
const clickY = mouse.y;
const outsideContent = clickX < root.alignedX || clickX > root.alignedX + root.alignedWidth || clickY < root.renderedAlignedY || clickY > root.renderedAlignedY + root.renderedAlignedHeight;
if (!outsideContent)
return;
backgroundClicked();
enabled: shouldBeVisible && backgroundInteractive
x: 0
y: 0
width: parent.width
height: parent.height
// Four edge strips that exclude the popup body, so cursor shapes
// inside the content propagate correctly (full-screen MouseAreas
// at z:-1 can suppress child cursorShape on Wayland).
MouseArea {
x: 0
y: 0
width: parent.width
height: root.renderedAlignedY
enabled: parent.enabled
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: backgroundClicked()
}
MouseArea {
x: 0
y: root.renderedAlignedY + root.renderedAlignedHeight
width: parent.width
height: Math.max(0, parent.height - root.renderedAlignedY - root.renderedAlignedHeight)
enabled: parent.enabled
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: backgroundClicked()
}
MouseArea {
x: 0
y: root.renderedAlignedY
width: root.alignedX
height: root.renderedAlignedHeight
enabled: parent.enabled
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: backgroundClicked()
}
MouseArea {
x: root.alignedX + root.alignedWidth
y: root.renderedAlignedY
width: Math.max(0, parent.width - root.alignedX - root.alignedWidth)
height: root.renderedAlignedHeight
enabled: parent.enabled
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: backgroundClicked()
}
}