Skip to content

Commit ec419c8

Browse files
committed
fix(sound): wrong profile position when profiles are filtered
1 parent 278f24d commit ec419c8

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

cosmic-settings/src/pages/sound/device_profiles.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,22 @@ pub fn view() -> Section<crate::pages::Message> {
9090
});
9191

9292
// TODO: cache
93-
let profiles = profiles
93+
let (indexes, profiles): (Vec<_>, Vec<_>) = profiles
9494
.iter()
95-
.filter(|p| {
95+
.enumerate()
96+
.filter(|(_, p)| {
9697
matches!(
9798
p.available,
9899
pipewire::Availability::Yes | pipewire::Availability::Unknown
99100
)
100101
})
101-
.map(|p| p.description.clone());
102+
.map(|(id, p)| (id, p.description.clone()))
103+
.collect();
102104

103105
let dropdown = widget::dropdown::popup_dropdown(
104106
Vec::from_iter(profiles),
105107
active_profile,
106-
move |id| super::Message::SetProfile(device_id, id),
108+
move |id| super::Message::SetProfile(device_id, indexes[id]),
107109
cosmic::iced::window::Id::RESERVED,
108110
super::Message::Surface,
109111
crate::Message::from,

0 commit comments

Comments
 (0)