mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-24 12:07:47 -04:00
shellcore: skip surface recovery while only a placeholder screen exists
related #3057
This commit is contained in:
1 parent
5b8f083fe5
commit
f91b43b29d
1 file changed
+12
@@ -236,6 +236,10 @@ Item {
|
||||
}
|
||||
|
||||
function refreshScreenSurfaces() {
|
||||
if (!_hasRealScreen()) {
|
||||
log.info("Surface refresh skipped: no real screen");
|
||||
return;
|
||||
}
|
||||
log.info("Refreshing layer surfaces, screens:", Quickshell.screens.length, Quickshell.screens.map(s => s.name).join(","));
|
||||
SurfaceRecovery.refreshAll();
|
||||
surfaceRefreshVerifyTimer.restart();
|
||||
@@ -289,6 +293,14 @@ Item {
|
||||
repeat: false
|
||||
property int pass: 0
|
||||
onTriggered: {
|
||||
// Rebuilding against a placeholder-only screen list feeds a dangling screen to the per-screen delegate models and segfaults (#3057); onScreensChanged reschedules once outputs return.
|
||||
if (!root._hasRealScreen()) {
|
||||
log.info("Surface recovery skipped: no real screen");
|
||||
pass = 0;
|
||||
interval = 800;
|
||||
return;
|
||||
}
|
||||
|
||||
pass++;
|
||||
log.info("Surface recovery pass", pass, "screens:", Quickshell.screens.length, Quickshell.screens.map(s => s.name).join(","));
|
||||
|
||||
|
||||
Reference in new issue
Block a user