fix: crash when a sink input was removed

This commit is contained in:
2024-06-29 13:44:42 +02:00
parent 638eded282
commit 39f1148cad

View File

@@ -238,20 +238,18 @@ impl Mixer {
Some(current_index) => { Some(current_index) => {
drop(selected_index_lock); drop(selected_index_lock);
let removed_sink_input_index = self if let Some(removed_sink_input_index) =
.sink_inputs self.sink_inputs.keys().position(|k| *k == sink_index)
.keys() {
.position(|k| *k == sink_index) let current_key =
.unwrap(); *self.sink_inputs.keys().nth(current_index).unwrap();
let current_key = if self.sink_inputs.remove(&sink_index).is_some() {
*self.sink_inputs.keys().nth(current_index).unwrap(); if sink_index == current_key
|| removed_sink_input_index > current_index
if self.sink_inputs.remove(&sink_index).is_some() { {
if sink_index == current_key self.select_previous();
|| removed_sink_input_index > current_index }
{
self.select_previous();
} }
} }
} }