mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-05-05 03:52:07 -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:
@@ -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