feat(core): wire up parameters in clipboard injector
This commit is contained in:
parent
136b4791df
commit
645cd78573
|
@ -67,26 +67,28 @@ impl<'a> ClipboardInjectorAdapter<'a> {
|
||||||
params.pre_paste_delay.try_into().unwrap(),
|
params.pre_paste_delay.try_into().unwrap(),
|
||||||
));
|
));
|
||||||
|
|
||||||
// TODO: handle case of custom combination
|
let mut custom_combination = None;
|
||||||
let combination = if cfg!(target_os = "macos") {
|
if let Some(custom_shortcut) = params.paste_shortcut {
|
||||||
&[Key::Meta, Key::V]
|
if let Some(combination) = parse_combination(&custom_shortcut) {
|
||||||
|
custom_combination = Some(combination);
|
||||||
} else {
|
} else {
|
||||||
&[Key::Control, Key::V]
|
error!("'{}' is not a valid paste shortcut", custom_shortcut);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let combination = if let Some(custom_combination) = custom_combination {
|
||||||
|
custom_combination
|
||||||
|
} else if cfg!(target_os = "macos") {
|
||||||
|
vec![Key::Meta, Key::V]
|
||||||
|
} else {
|
||||||
|
vec![Key::Control, Key::V]
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: handle user-specified delays
|
|
||||||
// let paste_combination_delay = if cfg!(target_os = "macos") {
|
|
||||||
// 5
|
|
||||||
// } else {
|
|
||||||
// InjectionOptions::default().delay
|
|
||||||
// };
|
|
||||||
|
|
||||||
// TODO: handle options
|
|
||||||
self.injector.send_key_combination(
|
self.injector.send_key_combination(
|
||||||
combination,
|
&combination,
|
||||||
InjectionOptions {
|
InjectionOptions {
|
||||||
delay: params.paste_shortcut_event_delay as i32,
|
delay: params.paste_shortcut_event_delay as i32,
|
||||||
..Default::default()
|
disable_fast_inject: params.disable_x11_fast_inject,
|
||||||
},
|
},
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
@ -192,3 +194,13 @@ impl<'a> Drop for ClipboardRestoreGuard<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_combination(combination: &str) -> Option<Vec<Key>> {
|
||||||
|
let tokens = combination.split("+");
|
||||||
|
let mut keys: Vec<Key> = Vec::new();
|
||||||
|
for token in tokens {
|
||||||
|
keys.push(Key::parse(token)?);
|
||||||
|
}
|
||||||
|
|
||||||
|
Some(keys)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user