mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-05-03 11:02:08 -04:00
general fixes and audit
This commit is contained in:
@@ -84,9 +84,31 @@ Item {
|
||||
impl.item.toggle();
|
||||
}
|
||||
|
||||
readonly property var _desiredBackend: SettingsData.connectedFrameModeActive ? connectedComp : standaloneComp
|
||||
property var _resolvedBackend: null
|
||||
|
||||
Component.onCompleted: _resolvedBackend = _desiredBackend
|
||||
|
||||
Connections {
|
||||
target: SettingsData
|
||||
function onConnectedFrameModeActiveChanged() {
|
||||
root._maybeResolveBackend();
|
||||
}
|
||||
}
|
||||
|
||||
// Defer Loader source-component swap until impl is fully closed; avoids
|
||||
// tearing down a modal mid-animation when frame mode is toggled.
|
||||
function _maybeResolveBackend() {
|
||||
if (_resolvedBackend === _desiredBackend)
|
||||
return;
|
||||
if (impl.item && (impl.item.shouldBeVisible || impl.item.isClosing))
|
||||
return;
|
||||
_resolvedBackend = _desiredBackend;
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: impl
|
||||
sourceComponent: SettingsData.connectedFrameModeActive ? connectedComp : standaloneComp
|
||||
sourceComponent: root._resolvedBackend
|
||||
onItemChanged: if (item)
|
||||
root._wireBackend(item)
|
||||
}
|
||||
@@ -137,20 +159,7 @@ Item {
|
||||
it.useOverlayLayer = Qt.binding(() => root.useOverlayLayer);
|
||||
|
||||
it.shouldBeVisible = root.shouldBeVisible;
|
||||
it.shouldBeVisibleChanged.connect(function () {
|
||||
if (root.shouldBeVisible !== it.shouldBeVisible)
|
||||
root.shouldBeVisible = it.shouldBeVisible;
|
||||
});
|
||||
|
||||
it.shouldHaveFocus = root.shouldHaveFocus;
|
||||
it.shouldHaveFocusChanged.connect(function () {
|
||||
if (root.shouldHaveFocus !== it.shouldHaveFocus)
|
||||
root.shouldHaveFocus = it.shouldHaveFocus;
|
||||
});
|
||||
|
||||
it.opened.connect(root.opened);
|
||||
it.dialogClosed.connect(root.dialogClosed);
|
||||
it.backgroundClicked.connect(root.backgroundClicked);
|
||||
|
||||
if (it.modalFocusScope)
|
||||
_modalFocusScope.parent = it.modalFocusScope;
|
||||
@@ -167,4 +176,32 @@ Item {
|
||||
impl.item.shouldHaveFocus = root.shouldHaveFocus;
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: impl.item
|
||||
ignoreUnknownSignals: true
|
||||
|
||||
function onShouldBeVisibleChanged() {
|
||||
if (impl.item && root.shouldBeVisible !== impl.item.shouldBeVisible)
|
||||
root.shouldBeVisible = impl.item.shouldBeVisible;
|
||||
}
|
||||
|
||||
function onShouldHaveFocusChanged() {
|
||||
if (impl.item && root.shouldHaveFocus !== impl.item.shouldHaveFocus)
|
||||
root.shouldHaveFocus = impl.item.shouldHaveFocus;
|
||||
}
|
||||
|
||||
function onOpened() {
|
||||
root.opened();
|
||||
}
|
||||
|
||||
function onDialogClosed() {
|
||||
root.dialogClosed();
|
||||
root._maybeResolveBackend();
|
||||
}
|
||||
|
||||
function onBackgroundClicked() {
|
||||
root.backgroundClicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,6 @@ Item {
|
||||
|
||||
property bool animationsEnabled: true
|
||||
|
||||
// ─── Connected chrome sync ────────────────────────────────────────────────
|
||||
property string _chromeClaimId: ""
|
||||
property bool _fullSyncPending: false
|
||||
|
||||
@@ -341,8 +340,6 @@ Item {
|
||||
readonly property real shadowMotionPadding: {
|
||||
if (Theme.isConnectedEffect)
|
||||
return 0;
|
||||
if (Theme.isDirectionalEffect)
|
||||
return 0;
|
||||
if (animationType === "slide")
|
||||
return 30;
|
||||
if (Theme.isDirectionalEffect)
|
||||
|
||||
Reference in New Issue
Block a user