feat(config): create options to delay injection after form/search gui
This commit is contained in:
parent
9760776904
commit
3abe84f8b0
|
@ -21,3 +21,5 @@ pub(crate) const DEFAULT_CLIPBOARD_THRESHOLD: usize = 100;
|
||||||
pub(crate) const DEFAULT_PRE_PASTE_DELAY: usize = 100;
|
pub(crate) const DEFAULT_PRE_PASTE_DELAY: usize = 100;
|
||||||
pub(crate) const DEFAULT_SHORTCUT_EVENT_DELAY: usize = 10;
|
pub(crate) const DEFAULT_SHORTCUT_EVENT_DELAY: usize = 10;
|
||||||
pub(crate) const DEFAULT_RESTORE_CLIPBOARD_DELAY: usize = 300;
|
pub(crate) const DEFAULT_RESTORE_CLIPBOARD_DELAY: usize = 300;
|
||||||
|
pub(crate) const DEFAULT_POST_FORM_DELAY: usize = 200;
|
||||||
|
pub(crate) const DEFAULT_POST_SEARCH_DELAY: usize = 200;
|
||||||
|
|
|
@ -150,6 +150,18 @@ pub trait Config: Send + Sync {
|
||||||
// If false, avoid showing the SecureInput notification on macOS
|
// If false, avoid showing the SecureInput notification on macOS
|
||||||
fn secure_input_notification(&self) -> bool;
|
fn secure_input_notification(&self) -> bool;
|
||||||
|
|
||||||
|
// The number of milliseconds to wait after a form has been closed.
|
||||||
|
// This is useful to let the target application regain focus
|
||||||
|
// after a form has been closed, otherwise the injection might
|
||||||
|
// not be targeted to the right application.
|
||||||
|
fn post_form_delay(&self) -> usize;
|
||||||
|
|
||||||
|
// The number of milliseconds to wait after the search bar has been closed.
|
||||||
|
// This is useful to let the target application regain focus
|
||||||
|
// after the search bar has been closed, otherwise the injection might
|
||||||
|
// not be targeted to the right application.
|
||||||
|
fn post_search_delay(&self) -> usize;
|
||||||
|
|
||||||
// If true, use the `xclip` command to implement the clipboard instead of
|
// If true, use the `xclip` command to implement the clipboard instead of
|
||||||
// the built-in native module on X11.
|
// the built-in native module on X11.
|
||||||
fn x11_use_xclip_backend(&self) -> bool;
|
fn x11_use_xclip_backend(&self) -> bool;
|
||||||
|
@ -188,6 +200,8 @@ pub trait Config: Send + Sync {
|
||||||
toggle_key: {:?}
|
toggle_key: {:?}
|
||||||
auto_restart: {:?}
|
auto_restart: {:?}
|
||||||
restore_clipboard_delay: {:?}
|
restore_clipboard_delay: {:?}
|
||||||
|
post_form_delay: {:?}
|
||||||
|
post_search_delay: {:?}
|
||||||
backspace_limit: {}
|
backspace_limit: {}
|
||||||
search_trigger: {:?}
|
search_trigger: {:?}
|
||||||
search_shortcut: {:?}
|
search_shortcut: {:?}
|
||||||
|
@ -220,6 +234,8 @@ pub trait Config: Send + Sync {
|
||||||
self.toggle_key(),
|
self.toggle_key(),
|
||||||
self.auto_restart(),
|
self.auto_restart(),
|
||||||
self.restore_clipboard_delay(),
|
self.restore_clipboard_delay(),
|
||||||
|
self.post_form_delay(),
|
||||||
|
self.post_search_delay(),
|
||||||
self.backspace_limit(),
|
self.backspace_limit(),
|
||||||
self.search_trigger(),
|
self.search_trigger(),
|
||||||
self.search_shortcut(),
|
self.search_shortcut(),
|
||||||
|
|
|
@ -44,6 +44,8 @@ pub(crate) struct ParsedConfig {
|
||||||
pub show_notifications: Option<bool>,
|
pub show_notifications: Option<bool>,
|
||||||
pub show_icon: Option<bool>,
|
pub show_icon: Option<bool>,
|
||||||
pub secure_input_notification: Option<bool>,
|
pub secure_input_notification: Option<bool>,
|
||||||
|
pub post_form_delay: Option<usize>,
|
||||||
|
pub post_search_delay: Option<usize>,
|
||||||
pub win32_exclude_orphan_events: Option<bool>,
|
pub win32_exclude_orphan_events: Option<bool>,
|
||||||
pub win32_keyboard_layout_cache_interval: Option<i64>,
|
pub win32_keyboard_layout_cache_interval: Option<i64>,
|
||||||
pub x11_use_xclip_backend: Option<bool>,
|
pub x11_use_xclip_backend: Option<bool>,
|
||||||
|
|
|
@ -103,6 +103,12 @@ pub(crate) struct YAMLConfig {
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub show_icon: Option<bool>,
|
pub show_icon: Option<bool>,
|
||||||
|
|
||||||
|
#[serde(default)]
|
||||||
|
pub post_form_delay: Option<usize>,
|
||||||
|
|
||||||
|
#[serde(default)]
|
||||||
|
pub post_search_delay: Option<usize>,
|
||||||
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub secure_input_notification: Option<bool>,
|
pub secure_input_notification: Option<bool>,
|
||||||
|
|
||||||
|
@ -201,6 +207,8 @@ impl TryFrom<YAMLConfig> for ParsedConfig {
|
||||||
pre_paste_delay: yaml_config.pre_paste_delay,
|
pre_paste_delay: yaml_config.pre_paste_delay,
|
||||||
restore_clipboard_delay: yaml_config.restore_clipboard_delay,
|
restore_clipboard_delay: yaml_config.restore_clipboard_delay,
|
||||||
paste_shortcut_event_delay: yaml_config.paste_shortcut_event_delay,
|
paste_shortcut_event_delay: yaml_config.paste_shortcut_event_delay,
|
||||||
|
post_form_delay: yaml_config.post_form_delay,
|
||||||
|
post_search_delay: yaml_config.post_search_delay,
|
||||||
|
|
||||||
win32_exclude_orphan_events: yaml_config.win32_exclude_orphan_events,
|
win32_exclude_orphan_events: yaml_config.win32_exclude_orphan_events,
|
||||||
win32_keyboard_layout_cache_interval: yaml_config.win32_keyboard_layout_cache_interval,
|
win32_keyboard_layout_cache_interval: yaml_config.win32_keyboard_layout_cache_interval,
|
||||||
|
@ -260,6 +268,8 @@ mod tests {
|
||||||
show_icon: false
|
show_icon: false
|
||||||
show_notifications: false
|
show_notifications: false
|
||||||
secure_input_notification: false
|
secure_input_notification: false
|
||||||
|
post_form_delay: 300
|
||||||
|
post_search_delay: 400
|
||||||
win32_exclude_orphan_events: false
|
win32_exclude_orphan_events: false
|
||||||
win32_keyboard_layout_cache_interval: 300
|
win32_keyboard_layout_cache_interval: 300
|
||||||
x11_use_xclip_backend: true
|
x11_use_xclip_backend: true
|
||||||
|
@ -314,6 +324,8 @@ mod tests {
|
||||||
show_icon: Some(false),
|
show_icon: Some(false),
|
||||||
show_notifications: Some(false),
|
show_notifications: Some(false),
|
||||||
secure_input_notification: Some(false),
|
secure_input_notification: Some(false),
|
||||||
|
post_form_delay: Some(300),
|
||||||
|
post_search_delay: Some(400),
|
||||||
win32_exclude_orphan_events: Some(false),
|
win32_exclude_orphan_events: Some(false),
|
||||||
win32_keyboard_layout_cache_interval: Some(300),
|
win32_keyboard_layout_cache_interval: Some(300),
|
||||||
x11_use_xclip_backend: Some(true),
|
x11_use_xclip_backend: Some(true),
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
default::{
|
default::{
|
||||||
DEFAULT_CLIPBOARD_THRESHOLD, DEFAULT_PRE_PASTE_DELAY, DEFAULT_RESTORE_CLIPBOARD_DELAY,
|
DEFAULT_CLIPBOARD_THRESHOLD, DEFAULT_POST_FORM_DELAY, DEFAULT_POST_SEARCH_DELAY,
|
||||||
DEFAULT_SHORTCUT_EVENT_DELAY,
|
DEFAULT_PRE_PASTE_DELAY, DEFAULT_RESTORE_CLIPBOARD_DELAY, DEFAULT_SHORTCUT_EVENT_DELAY,
|
||||||
},
|
},
|
||||||
parse::ParsedConfig,
|
parse::ParsedConfig,
|
||||||
path::calculate_paths,
|
path::calculate_paths,
|
||||||
|
@ -299,6 +299,20 @@ impl Config for ResolvedConfig {
|
||||||
self.parsed.secure_input_notification.unwrap_or(true)
|
self.parsed.secure_input_notification.unwrap_or(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn post_form_delay(&self) -> usize {
|
||||||
|
self
|
||||||
|
.parsed
|
||||||
|
.post_form_delay
|
||||||
|
.unwrap_or(DEFAULT_POST_FORM_DELAY)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn post_search_delay(&self) -> usize {
|
||||||
|
self
|
||||||
|
.parsed
|
||||||
|
.post_search_delay
|
||||||
|
.unwrap_or(DEFAULT_POST_SEARCH_DELAY)
|
||||||
|
}
|
||||||
|
|
||||||
fn win32_exclude_orphan_events(&self) -> bool {
|
fn win32_exclude_orphan_events(&self) -> bool {
|
||||||
self.parsed.win32_exclude_orphan_events.unwrap_or(true)
|
self.parsed.win32_exclude_orphan_events.unwrap_or(true)
|
||||||
}
|
}
|
||||||
|
@ -398,6 +412,8 @@ impl ResolvedConfig {
|
||||||
show_icon,
|
show_icon,
|
||||||
show_notifications,
|
show_notifications,
|
||||||
secure_input_notification,
|
secure_input_notification,
|
||||||
|
post_form_delay,
|
||||||
|
post_search_delay,
|
||||||
win32_exclude_orphan_events,
|
win32_exclude_orphan_events,
|
||||||
win32_keyboard_layout_cache_interval,
|
win32_keyboard_layout_cache_interval,
|
||||||
x11_use_xclip_backend,
|
x11_use_xclip_backend,
|
||||||
|
|
|
@ -387,6 +387,14 @@ impl Config for LegacyInteropConfig {
|
||||||
self.config.enable_active
|
self.config.enable_active
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn post_form_delay(&self) -> usize {
|
||||||
|
crate::config::default::DEFAULT_POST_FORM_DELAY
|
||||||
|
}
|
||||||
|
|
||||||
|
fn post_search_delay(&self) -> usize {
|
||||||
|
crate::config::default::DEFAULT_POST_SEARCH_DELAY
|
||||||
|
}
|
||||||
|
|
||||||
fn win32_exclude_orphan_events(&self) -> bool {
|
fn win32_exclude_orphan_events(&self) -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user