Add gamma control and night light (#38)
Add configurable night light, smooth gamma transitions, and shell controls. Update documentation and panel tests, and fix portal test startup synchronization.
This commit is contained in:
1 parent
9163374cdb
commit
2a400b26d0
34 files changed
+940
-20
No files matched your search
@@ -122,6 +122,7 @@ pub enum ItemKind {
|
||||
Media,
|
||||
Activities,
|
||||
QuickSettings,
|
||||
NightLight,
|
||||
Network,
|
||||
Audio,
|
||||
Recording,
|
||||
@@ -154,6 +155,7 @@ impl ItemKind {
|
||||
Self::Media => "Media",
|
||||
Self::Activities => "Activities",
|
||||
Self::QuickSettings => "Quick Settings",
|
||||
Self::NightLight => "Night light",
|
||||
Self::Network => "Network",
|
||||
Self::Audio => "Audio",
|
||||
Self::Recording => "Recording",
|
||||
@@ -656,6 +658,7 @@ impl Panel {
|
||||
let controls = vec![
|
||||
item("media", Media),
|
||||
item("quick-settings", QuickSettings),
|
||||
item("night-light", NightLight),
|
||||
item("network", Network),
|
||||
item("audio", Audio),
|
||||
item("recording", Recording),
|
||||
@@ -765,6 +768,7 @@ mod tests {
|
||||
"focused-window",
|
||||
"media",
|
||||
"quick-settings",
|
||||
"night-light",
|
||||
"network",
|
||||
"audio",
|
||||
"recording",
|
||||
@@ -802,6 +806,7 @@ mod tests {
|
||||
"workspaces",
|
||||
"focused-window",
|
||||
"quick-settings",
|
||||
"night-light",
|
||||
"recording",
|
||||
"clock"
|
||||
]
|
||||
@@ -818,7 +823,7 @@ mod tests {
|
||||
}),
|
||||
all.iter().map(|item| item.id.0.as_str()).collect::<Vec<_>>()
|
||||
);
|
||||
assert_eq!(items(&panel).len(), 12);
|
||||
assert_eq!(items(&panel).len(), 13);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -744,9 +744,16 @@ mod tests {
|
||||
#[test]
|
||||
fn always_overflow_is_reserved_and_unavailable_items_are_not_allocated() {
|
||||
let mut panel = Panel::default();
|
||||
panel.end.groups[0].items[2].overflow = OverflowPolicy::Always;
|
||||
panel
|
||||
.end
|
||||
.groups
|
||||
.iter_mut()
|
||||
.flat_map(|group| &mut group.items)
|
||||
.find(|item| item.id.0 == "network")
|
||||
.unwrap()
|
||||
.overflow = OverflowPolicy::Always;
|
||||
let mut measured = measurements(&panel);
|
||||
measured.remove(3);
|
||||
measured.retain(|item| item.id.0 != "media");
|
||||
let resolution = resolve(&panel, &measured, 2000., 32.);
|
||||
assert!(!resolution.items.contains_key(&ItemId("media".into())));
|
||||
assert_eq!(resolution.overflow, [ItemId("network".into())]);
|
||||
|
||||
Reference in new issue
Block a user