mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-01 19:18:28 -04:00
window-rules/niri: make floating a tri-state
This commit is contained in:
@@ -928,8 +928,8 @@ func (p *NiriWritableProvider) formatRule(rule windowrules.WindowRule) string {
|
||||
if a.Opacity != nil {
|
||||
lines = append(lines, fmt.Sprintf(" opacity %.2f", *a.Opacity))
|
||||
}
|
||||
if a.OpenFloating != nil && *a.OpenFloating {
|
||||
lines = append(lines, " open-floating true")
|
||||
if a.OpenFloating != nil {
|
||||
lines = append(lines, fmt.Sprintf(" open-floating %t", *a.OpenFloating))
|
||||
}
|
||||
if a.OpenMaximized != nil && *a.OpenMaximized {
|
||||
lines = append(lines, " open-maximized true")
|
||||
|
||||
@@ -52,6 +52,7 @@ FloatingWindow {
|
||||
condInitialised.triState = 0;
|
||||
opacityEnabled.checked = false;
|
||||
opacitySlider.value = 100;
|
||||
floatingCond.triState = 0;
|
||||
floatingToggle.checked = false;
|
||||
maximizedToggle.checked = false;
|
||||
maximizedToEdgesToggle.checked = false;
|
||||
@@ -164,6 +165,7 @@ FloatingWindow {
|
||||
opacityEnabled.checked = hasOpacity;
|
||||
opacitySlider.value = hasOpacity ? Math.round(actions.opacity * 100) : 100;
|
||||
|
||||
floatingCond.triState = triFromBool(actions.openFloating);
|
||||
floatingToggle.checked = actions.openFloating || false;
|
||||
maximizedToggle.checked = actions.openMaximized || false;
|
||||
maximizedToEdgesToggle.checked = actions.openMaximizedToEdges || false;
|
||||
@@ -318,7 +320,9 @@ FloatingWindow {
|
||||
|
||||
if (opacityEnabled.checked)
|
||||
actions.opacity = opacitySlider.value / 100;
|
||||
if (floatingToggle.checked)
|
||||
if (isNiri)
|
||||
applyCond(actions, "openFloating", floatingCond.triState);
|
||||
else if (floatingToggle.checked)
|
||||
actions.openFloating = true;
|
||||
if (maximizedToggle.checked)
|
||||
actions.openMaximized = true;
|
||||
@@ -943,6 +947,17 @@ FloatingWindow {
|
||||
title: I18n.tr("Window Opening")
|
||||
}
|
||||
|
||||
Flow {
|
||||
width: parent.width
|
||||
spacing: Theme.spacingS
|
||||
visible: isNiri
|
||||
|
||||
MatchCond {
|
||||
id: floatingCond
|
||||
label: I18n.tr("Float")
|
||||
}
|
||||
}
|
||||
|
||||
Flow {
|
||||
width: parent.width
|
||||
spacing: Theme.spacingL
|
||||
@@ -950,6 +965,7 @@ FloatingWindow {
|
||||
CheckboxRow {
|
||||
id: floatingToggle
|
||||
label: I18n.tr("Float")
|
||||
visible: !isNiri
|
||||
}
|
||||
CheckboxRow {
|
||||
id: maximizedToggle
|
||||
|
||||
Reference in New Issue
Block a user