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