Support mapping both a chained and non-chained event for the same key at the same time

This commit is contained in:
cyber-sushi 2024-05-19 07:11:46 +02:00
parent f87c8cec45
commit da2a43aaee

View file

@ -343,14 +343,17 @@ impl EventReader {
if let Some(event_list) = map.get(&modifiers) { if let Some(event_list) = map.get(&modifiers) {
self.emit_event(event_list, value, &modifiers, modifiers.is_empty(), !modifiers.is_empty()).await; self.emit_event(event_list, value, &modifiers, modifiers.is_empty(), !modifiers.is_empty()).await;
return return
} else if let Some(event_list) = map.get(&Vec::new()) {
self.emit_event(event_list, value, &modifiers, true, false).await;
return
} else if let Some(event_list) = map.get(&vec![Event::Hold]) { } else if let Some(event_list) = map.get(&vec![Event::Hold]) {
if !modifiers.is_empty() || self.settings.chain_only == false { if !modifiers.is_empty() || self.settings.chain_only == false {
self.emit_event(event_list, value, &modifiers, false, false).await; self.emit_event(event_list, value, &modifiers, false, false).await;
return return
} else if let Some(event_list) = map.get(&Vec::new()) {
self.emit_event(event_list, value, &modifiers, true, false).await;
return
} }
} else if let Some(event_list) = map.get(&Vec::new()) {
self.emit_event(event_list, value, &modifiers, true, false).await;
return
} }
} }
if let Some(map) = path.bindings.commands.get(&event) { if let Some(map) = path.bindings.commands.get(&event) {