fix: Disallow disabling only active display

Closes: #299
This commit is contained in:
Josh Megnauth 2024-05-24 00:20:23 -04:00 committed by Michael Murphy
parent 79b01f211d
commit 3160fc1bd8

View file

@ -469,12 +469,23 @@ impl Page {
.button_alignment(Alignment::Center)
.on_activate(Message::Display);
let display_enable = list_column().add(cosmic::widget::settings::item(
&*text::DISPLAY_ENABLE,
toggler(None, active_output.enabled, Message::DisplayToggle),
));
let display_enable = (self
// Don't allow disabling display if it's the only active
.list
.outputs
.values()
.filter(|display| display.enabled)
.count()
> 1
|| !active_output.enabled)
.then(|| {
list_column().add(cosmic::widget::settings::item(
&*text::DISPLAY_ENABLE,
toggler(None, active_output.enabled, Message::DisplayToggle),
))
});
content = content.push(display_switcher).push(display_enable);
content = content.push(display_switcher).push_maybe(display_enable);
}
content