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:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user