1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-05-15 00:32:47 -04:00

refactor(dbar/dock): Update fullscreen hiding logic

This commit is contained in:
purian23
2026-05-13 14:38:44 -04:00
parent 022f47a580
commit 5bde54fa89
2 changed files with 10 additions and 22 deletions
+9 -20
View File
@@ -317,7 +317,15 @@ PanelWindow {
property string screenName: modelData.name property string screenName: modelData.name
property bool hasMaximizedToplevel: false property bool hasMaximizedToplevel: false
property bool hasFullscreenToplevel: false readonly property bool hasFullscreenToplevel: {
if (!(barConfig?.fullscreenDetection ?? true))
return false;
CompositorService.sortedToplevels;
ToplevelManager.activeToplevel;
if (CompositorService.isNiri)
NiriService.allWorkspaces;
return CompositorService.hasFullscreenToplevelOnScreen(screenName);
}
property bool shouldHideForWindows: false property bool shouldHideForWindows: false
function _updateHasMaximizedToplevel() { function _updateHasMaximizedToplevel() {
@@ -340,14 +348,6 @@ PanelWindow {
hasMaximizedToplevel = false; hasMaximizedToplevel = false;
} }
function _updateHasFullscreenToplevel() {
if (!(barConfig?.fullscreenDetection ?? true)) {
hasFullscreenToplevel = false;
return;
}
hasFullscreenToplevel = CompositorService.hasFullscreenToplevelOnScreen(screenName);
}
function _updateShouldHideForWindows() { function _updateShouldHideForWindows() {
if (!(barConfig?.showOnWindowsOpen ?? false)) { if (!(barConfig?.showOnWindowsOpen ?? false)) {
shouldHideForWindows = false; shouldHideForWindows = false;
@@ -546,7 +546,6 @@ PanelWindow {
updateGpuTempConfig(); updateGpuTempConfig();
_updateBackgroundAlpha(); _updateBackgroundAlpha();
_updateHasMaximizedToplevel(); _updateHasMaximizedToplevel();
_updateHasFullscreenToplevel();
_updateShouldHideForWindows(); _updateShouldHideForWindows();
} }
@@ -589,7 +588,6 @@ PanelWindow {
barWindow.updateGpuTempConfig(); barWindow.updateGpuTempConfig();
barWindow._updateBackgroundAlpha(); barWindow._updateBackgroundAlpha();
barWindow._updateHasMaximizedToplevel(); barWindow._updateHasMaximizedToplevel();
barWindow._updateHasFullscreenToplevel();
barWindow._updateShouldHideForWindows(); barWindow._updateShouldHideForWindows();
} }
@@ -607,7 +605,6 @@ PanelWindow {
target: CompositorService target: CompositorService
function onToplevelsChanged() { function onToplevelsChanged() {
barWindow._updateHasMaximizedToplevel(); barWindow._updateHasMaximizedToplevel();
barWindow._updateHasFullscreenToplevel();
barWindow._updateShouldHideForWindows(); barWindow._updateShouldHideForWindows();
} }
} }
@@ -616,18 +613,10 @@ PanelWindow {
target: NiriService target: NiriService
function onAllWorkspacesChanged() { function onAllWorkspacesChanged() {
barWindow._updateHasMaximizedToplevel(); barWindow._updateHasMaximizedToplevel();
barWindow._updateHasFullscreenToplevel();
barWindow._updateShouldHideForWindows(); barWindow._updateShouldHideForWindows();
} }
} }
Connections {
target: ToplevelManager
function onActiveToplevelChanged() {
barWindow._updateHasFullscreenToplevel();
}
}
Connections { Connections {
function onNvidiaGpuTempEnabledChanged() { function onNvidiaGpuTempEnabledChanged() {
barWindow.updateGpuTempConfig(); barWindow.updateGpuTempConfig();
+1 -2
View File
@@ -422,8 +422,7 @@ Singleton {
const filtered = filterCurrentWorkspace(sortedToplevels, screenName); const filtered = filterCurrentWorkspace(sortedToplevels, screenName);
for (let i = 0; i < filtered.length; i++) { for (let i = 0; i < filtered.length; i++) {
const toplevel = filtered[i]; if (filtered[i]?.fullscreen)
if (toplevel?.fullscreen && toplevel?.activated)
return true; return true;
} }
return false; return false;