fix(qt): wheel-lock sweep across plain-Item modal overlays
Plain-Item overlays get no modal grab, so a MouseArea that swallows presses still lets the wheel scroll the page underneath (the rule and its wording live in DiscoverConfigModal.qml). Every scrim and panel swallow across the modal set now accepts the wheel; the modal Popups (TrackInfo, CastPicker, AlbumInfo, QconnectDev, LocalMediaInfo) already had the Overlay grab, and CoverLightbox — a non-modal Popup — gets its own. cc
This commit is contained in:
23 files changed
+190
-28
No files matched your search
@@ -52,6 +52,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: if (doc.applying !== true) QbzDiscMeta.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +68,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
clip: true
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// ---- Header ---------------------------------------------------
|
||||
Item {
|
||||
|
||||
@@ -138,6 +138,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzFolderEdit.createClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +154,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// FIRST child: swallows clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: createCol
|
||||
@@ -280,6 +286,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzFolderEdit.editClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,7 +301,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: editCol
|
||||
|
||||
@@ -28,6 +28,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzLink.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +43,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: panel
|
||||
|
||||
@@ -89,6 +89,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzMyQbz.createClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
@@ -101,7 +103,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: createCol
|
||||
@@ -262,6 +268,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzMyQbz.editClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
@@ -274,7 +282,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: editCol
|
||||
@@ -428,6 +440,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzMyQbz.mixClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
@@ -440,7 +454,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: mixCol
|
||||
|
||||
@@ -68,6 +68,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root.cancel()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +94,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: content
|
||||
|
||||
@@ -168,6 +168,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzPlaylistEdit.closeCreate()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +184,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// FIRST child: swallows clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: col
|
||||
|
||||
@@ -171,6 +171,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzPlaylistEdit.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +187,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// FIRST child: swallows clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: col
|
||||
|
||||
@@ -90,6 +90,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzPlaylistImport.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +108,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
// Swallow clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
readonly property int contentWidth: card.width - 48
|
||||
|
||||
|
||||
@@ -129,6 +129,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root._cancel()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +160,11 @@ Item {
|
||||
|
||||
// Swallow clicks so they never reach the scrim (the Slint's empty
|
||||
// panel TouchArea, :1030).
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: panelCol
|
||||
|
||||
@@ -40,7 +40,12 @@ Item {
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "#bf000000"
|
||||
MouseArea { anchors.fill: parent; onClicked: QbzLocal.ripPanel(false) }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzLocal.ripPanel(false)
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
@@ -54,7 +59,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
clip: true
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// ---- Header -----------------------------------------------------
|
||||
Item {
|
||||
|
||||
@@ -117,7 +117,12 @@ Item {
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "#bf000000"
|
||||
MouseArea { anchors.fill: parent; onClicked: QbzLocal.ripWizardClose() }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzLocal.ripWizardClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
@@ -131,7 +136,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
clip: true
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// ---- Header + step dots ----------------------------------------
|
||||
Item {
|
||||
|
||||
@@ -288,6 +288,8 @@ Item {
|
||||
anchors.fill: parent
|
||||
enabled: !root.busy
|
||||
onClicked: root.closeEditor()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -302,7 +304,11 @@ Item {
|
||||
border.color: theme.borderStrong
|
||||
clip: true
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Item {
|
||||
id: header
|
||||
|
||||
@@ -78,6 +78,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: if (!root.applying) QbzTrackReplace.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +95,11 @@ Item {
|
||||
clip: true
|
||||
|
||||
// Swallow clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: panel
|
||||
|
||||
@@ -163,6 +163,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzDacWizard.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +180,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
// Swallow clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
readonly property int contentWidth: card.width - 48
|
||||
|
||||
|
||||
@@ -96,6 +96,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +123,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// Swallow clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
id: body
|
||||
|
||||
@@ -577,6 +577,8 @@ Rectangle {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root.textModalOpen = false
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
Rectangle {
|
||||
anchors.centerIn: parent
|
||||
@@ -586,7 +588,11 @@ Rectangle {
|
||||
color: theme.surfaceCard
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 24
|
||||
|
||||
@@ -131,6 +131,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root._close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +162,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// FIRST child: swallows clicks so they never reach the scrim.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// --- Header: title + "N modified" badge + X (Slint :208-261) --
|
||||
// NO keyboard icon here — the editor header has none (trap 6).
|
||||
|
||||
@@ -127,6 +127,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root._close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +161,11 @@ Item {
|
||||
|
||||
// FIRST child: swallows clicks so they never reach the scrim
|
||||
// (the Slint's empty panel TouchArea, :137).
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// --- Header: icon + title + X (Slint :143-184) ---------------
|
||||
Item {
|
||||
|
||||
@@ -83,6 +83,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzShell.logClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +111,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// Swallow clicks so they never reach the closing backdrop.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// ANCHORED, not a Column. The body is the only stretch row and its
|
||||
// height depends on which optional rows are mounted (the advanced
|
||||
|
||||
@@ -45,6 +45,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root.open = false
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +71,11 @@ Item {
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
// Swallow clicks so the scrim below does not close the modal.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
|
||||
@@ -78,6 +78,8 @@ Item {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: QbzAbout.whatsNewClose()
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +103,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Item {
|
||||
id: stack
|
||||
|
||||
@@ -94,7 +94,11 @@ Item {
|
||||
// No click-through close. Unlike the other modals this one is the
|
||||
// first thing a new user sees and says what is not promised; a stray
|
||||
// click on the scrim should not dismiss it.
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
@@ -115,7 +119,11 @@ Item {
|
||||
border.width: 1
|
||||
border.color: theme.borderSubtle
|
||||
|
||||
MouseArea { anchors.fill: parent }
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
// Wheel-lock (the DiscoverConfigModal rule).
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
||||
@@ -56,6 +56,10 @@ Popup {
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: root.close()
|
||||
// Wheel-lock (the DiscoverConfigModal rule): the Popup is not
|
||||
// `modal`, so nothing grabs the wheel for it — without this the
|
||||
// page kept scrolling behind the lightbox.
|
||||
onWheel: function (wheel) { wheel.accepted = true }
|
||||
}
|
||||
|
||||
// The 90% viewport the artwork is fitted into, so it never touches
|
||||
|
||||
Reference in new issue
Block a user