Skip to content

Commit

Permalink
fix: keybindings disappear when mixing presets with a wrong filter co…
Browse files Browse the repository at this point in the history
…ndition (#1568)
  • Loading branch information
sxyazi authored Aug 29, 2024
1 parent ddb8ce5 commit b280d79
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions yazi-config/src/keymap/keymap.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ impl<'de> Deserialize<'de> for Keymap {

fn mix(mut a: IndexSet<Chord>, b: IndexSet<Chord>, c: IndexSet<Chord>) -> Vec<Chord> {
let mut seen = HashSet::new();
b.iter().filter_map(|v| v.on.get(1)).for_each(|&k| _ = seen.insert(k));
c.iter().filter_map(|v| v.on.get(1)).for_each(|&k| _ = seen.insert(k));
b.iter().filter(|&v| v.on.len() > 1).for_each(|v| _ = seen.insert(&v.on[..2]));
c.iter().filter(|&v| v.on.len() > 1).for_each(|v| _ = seen.insert(&v.on[..2]));

a.retain(|v| v.on.len() < 2 || !seen.contains(&v.on[1]));
a.retain(|v| v.on.len() < 2 || !seen.contains(&v.on[..2]));
Preset::mix(a, b, c).collect()
}

Expand Down

0 comments on commit b280d79

Please sign in to comment.