mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-04-03 20:32:07 -04:00
popout: avoid calling close on bad reference
This commit is contained in:
@@ -13,7 +13,7 @@ func NewManager(display wlclient.WaylandDisplay) (*Manager, error) {
|
|||||||
m := &Manager{
|
m := &Manager{
|
||||||
display: display,
|
display: display,
|
||||||
ctx: display.Context(),
|
ctx: display.Context(),
|
||||||
cmdq: make(chan cmd, 128),
|
cmdq: make(chan cmd, 512),
|
||||||
stopChan: make(chan struct{}),
|
stopChan: make(chan struct{}),
|
||||||
dirty: make(chan struct{}, 1),
|
dirty: make(chan struct{}, 1),
|
||||||
fatalError: make(chan error, 1),
|
fatalError: make(chan error, 1),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
pragma Singleton
|
pragma Singleton
|
||||||
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import QtQuick
|
import QtQuick
|
||||||
@@ -13,21 +14,31 @@ Singleton {
|
|||||||
signal popoutChanged
|
signal popoutChanged
|
||||||
|
|
||||||
function _closePopout(popout) {
|
function _closePopout(popout) {
|
||||||
switch (true) {
|
try {
|
||||||
case popout.dashVisible !== undefined:
|
switch (true) {
|
||||||
popout.dashVisible = false;
|
case popout.dashVisible !== undefined:
|
||||||
|
popout.dashVisible = false;
|
||||||
|
return;
|
||||||
|
case popout.notificationHistoryVisible !== undefined:
|
||||||
|
popout.notificationHistoryVisible = false;
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
if (typeof popout.close !== "function")
|
||||||
|
return;
|
||||||
|
popout.close();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
return;
|
return;
|
||||||
case popout.notificationHistoryVisible !== undefined:
|
|
||||||
popout.notificationHistoryVisible = false;
|
|
||||||
return;
|
|
||||||
default:
|
|
||||||
popout.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function _isStale(popout) {
|
function _isStale(popout) {
|
||||||
try {
|
try {
|
||||||
return !popout || !("shouldBeVisible" in popout);
|
if (!popout || !("shouldBeVisible" in popout))
|
||||||
|
return true;
|
||||||
|
if (!popout.screen)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user