Added CHAIN_ONLY setting to control behavior of mixed bindings
This commit is contained in:
parent
439561c8c6
commit
cf8f7d7ad3
1 changed files with 9 additions and 2 deletions
|
@ -20,6 +20,7 @@ struct Settings {
|
||||||
lstick: Stick,
|
lstick: Stick,
|
||||||
rstick: Stick,
|
rstick: Stick,
|
||||||
axis_16_bit: bool,
|
axis_16_bit: bool,
|
||||||
|
chain_only: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct EventReader {
|
pub struct EventReader {
|
||||||
|
@ -80,10 +81,14 @@ impl EventReader {
|
||||||
let axis_16_bit: bool = config.get(&Client::Default).unwrap()
|
let axis_16_bit: bool = config.get(&Client::Default).unwrap()
|
||||||
.settings.get("16_BIT_AXIS").unwrap_or(&"false".to_string()).parse().expect("16_BIT_AXIS can only be true or false.");
|
.settings.get("16_BIT_AXIS").unwrap_or(&"false".to_string()).parse().expect("16_BIT_AXIS can only be true or false.");
|
||||||
|
|
||||||
|
let chain_only: bool = config.get(&Client::Default).unwrap()
|
||||||
|
.settings.get("CHAIN_ONLY").unwrap_or(&"true".to_string()).parse().expect("CHAIN_ONLY can only be true or false.");
|
||||||
|
|
||||||
let settings = Settings {
|
let settings = Settings {
|
||||||
lstick,
|
lstick,
|
||||||
rstick,
|
rstick,
|
||||||
axis_16_bit,
|
axis_16_bit,
|
||||||
|
chain_only,
|
||||||
};
|
};
|
||||||
Self {
|
Self {
|
||||||
config,
|
config,
|
||||||
|
@ -342,8 +347,10 @@ impl EventReader {
|
||||||
self.emit_event(event_list, value, &modifiers, true, false).await;
|
self.emit_event(event_list, value, &modifiers, true, false).await;
|
||||||
return
|
return
|
||||||
} else if let Some(event_list) = map.get(&vec![Event::Hold]) {
|
} else if let Some(event_list) = map.get(&vec![Event::Hold]) {
|
||||||
self.emit_event(event_list, value, &modifiers, false, false).await;
|
if !modifiers.is_empty() || self.settings.chain_only == false {
|
||||||
return
|
self.emit_event(event_list, value, &modifiers, false, false).await;
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(map) = path.bindings.commands.get(&event) {
|
if let Some(map) = path.bindings.commands.get(&event) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue