mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-05-05 12:02:06 -04:00
feat(bar/dock): add 'Hide When Fullscreen' opt-out toggles (#2349)
Adds per-bar 'fullscreenDetection' and global 'dockHideOnFullscreen' settings to gate CompositorService.hasFullscreenToplevelOnScreen()
This commit is contained in:
@@ -589,6 +589,7 @@ Singleton {
|
||||
property bool showDock: false
|
||||
property bool dockAutoHide: false
|
||||
property bool dockSmartAutoHide: false
|
||||
property bool dockHideOnFullscreen: true
|
||||
property bool dockGroupByApp: false
|
||||
property bool dockRestoreSpecialWorkspaceOnClick: false
|
||||
property bool dockOpenOnOverview: false
|
||||
|
||||
@@ -329,6 +329,7 @@ var SPEC = {
|
||||
showDock: { def: false },
|
||||
dockAutoHide: { def: false },
|
||||
dockSmartAutoHide: { def: false },
|
||||
dockHideOnFullscreen: { def: true },
|
||||
dockGroupByApp: { def: false },
|
||||
dockRestoreSpecialWorkspaceOnClick: { def: false },
|
||||
dockOpenOnOverview: { def: false },
|
||||
@@ -491,6 +492,7 @@ var SPEC = {
|
||||
popupGapsAuto: true,
|
||||
popupGapsManual: 4,
|
||||
maximizeDetection: true,
|
||||
fullscreenDetection: true,
|
||||
scrollEnabled: true,
|
||||
scrollXBehavior: "column",
|
||||
scrollYBehavior: "workspace",
|
||||
|
||||
@@ -310,6 +310,10 @@ PanelWindow {
|
||||
}
|
||||
|
||||
function _updateHasFullscreenToplevel() {
|
||||
if (!(barConfig?.fullscreenDetection ?? true)) {
|
||||
hasFullscreenToplevel = false;
|
||||
return;
|
||||
}
|
||||
hasFullscreenToplevel = CompositorService.hasFullscreenToplevelOnScreen(screenName);
|
||||
}
|
||||
|
||||
@@ -593,6 +597,7 @@ PanelWindow {
|
||||
barWindow.updateGpuTempConfig();
|
||||
barWindow._updateBackgroundAlpha();
|
||||
barWindow._updateHasMaximizedToplevel();
|
||||
barWindow._updateHasFullscreenToplevel();
|
||||
barWindow._updateShouldHideForWindows();
|
||||
}
|
||||
|
||||
|
||||
@@ -164,6 +164,8 @@ Variants {
|
||||
|
||||
readonly property string _dockScreenName: dock.modelData ? dock.modelData.name : (dock.screen ? dock.screen.name : "")
|
||||
readonly property bool hasFullscreenToplevel: {
|
||||
if (!SettingsData.dockHideOnFullscreen)
|
||||
return false;
|
||||
CompositorService.sortedToplevels;
|
||||
ToplevelManager.activeToplevel;
|
||||
if (CompositorService.isNiri) {
|
||||
|
||||
@@ -136,6 +136,7 @@ Item {
|
||||
popupGapsAuto: defaultBar.popupGapsAuto ?? true,
|
||||
popupGapsManual: defaultBar.popupGapsManual ?? 4,
|
||||
maximizeDetection: defaultBar.maximizeDetection ?? true,
|
||||
fullscreenDetection: defaultBar.fullscreenDetection ?? true,
|
||||
scrollEnabled: defaultBar.scrollEnabled ?? true,
|
||||
scrollXBehavior: defaultBar.scrollXBehavior ?? "column",
|
||||
scrollYBehavior: defaultBar.scrollYBehavior ?? "workspace",
|
||||
@@ -706,6 +707,24 @@ Item {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
height: 1
|
||||
color: Theme.outline
|
||||
opacity: 0.15
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
text: I18n.tr("Hide When Fullscreen", "bar visibility toggle: hide the bar when a window is fullscreen")
|
||||
checked: selectedBarConfig?.fullscreenDetection ?? true
|
||||
onToggled: toggled => {
|
||||
SettingsData.updateBarConfig(selectedBarId, {
|
||||
fullscreenDetection: toggled
|
||||
});
|
||||
notifyHorizontalBarChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SettingsControlledByFrame {
|
||||
|
||||
@@ -87,6 +87,16 @@ Item {
|
||||
visible: CompositorService.isNiri
|
||||
onToggled: checked => SettingsData.set("dockOpenOnOverview", checked)
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
settingKey: "dockHideOnFullscreen"
|
||||
tags: ["dock", "fullscreen", "hide"]
|
||||
text: I18n.tr("Hide When Fullscreen", "dock visibility toggle: hide the dock when a window is fullscreen")
|
||||
description: I18n.tr("Hide the dock when a window is fullscreen", "dock visibility toggle description")
|
||||
checked: SettingsData.dockHideOnFullscreen
|
||||
visible: SettingsData.showDock
|
||||
onToggled: checked => SettingsData.set("dockHideOnFullscreen", checked)
|
||||
}
|
||||
}
|
||||
|
||||
SettingsCard {
|
||||
|
||||
Reference in New Issue
Block a user