mirror of
https://github.com/rustdesk/hbb_common.git
synced 2025-07-01 15:36:53 +00:00
feat: trackpad speed
Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
parent
7839dcf4e4
commit
ceb8146f0c
@ -312,6 +312,12 @@ pub struct PeerConfig {
|
|||||||
skip_serializing_if = "String::is_empty"
|
skip_serializing_if = "String::is_empty"
|
||||||
)]
|
)]
|
||||||
pub use_all_my_displays_for_the_remote_session: String,
|
pub use_all_my_displays_for_the_remote_session: String,
|
||||||
|
#[serde(
|
||||||
|
rename = "trackpad-speed",
|
||||||
|
default = "PeerConfig::default_trackpad_speed",
|
||||||
|
deserialize_with = "PeerConfig::deserialize_trackpad_speed"
|
||||||
|
)]
|
||||||
|
pub trackpad_speed: i32,
|
||||||
|
|
||||||
#[serde(
|
#[serde(
|
||||||
default,
|
default,
|
||||||
@ -365,6 +371,7 @@ impl Default for PeerConfig {
|
|||||||
displays_as_individual_windows: Self::default_displays_as_individual_windows(),
|
displays_as_individual_windows: Self::default_displays_as_individual_windows(),
|
||||||
use_all_my_displays_for_the_remote_session:
|
use_all_my_displays_for_the_remote_session:
|
||||||
Self::default_use_all_my_displays_for_the_remote_session(),
|
Self::default_use_all_my_displays_for_the_remote_session(),
|
||||||
|
trackpad_speed: Self::default_trackpad_speed(),
|
||||||
custom_resolutions: Default::default(),
|
custom_resolutions: Default::default(),
|
||||||
options: Self::default_options(),
|
options: Self::default_options(),
|
||||||
ui_flutter: Default::default(),
|
ui_flutter: Default::default(),
|
||||||
@ -1518,6 +1525,24 @@ impl PeerConfig {
|
|||||||
});
|
});
|
||||||
mp
|
mp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_trackpad_speed() -> i32 {
|
||||||
|
UserDefaultConfig::read(keys::OPTION_TRACKPAD_SPEED)
|
||||||
|
.parse()
|
||||||
|
.unwrap_or(100)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn deserialize_trackpad_speed<'de, D>(deserializer: D) -> Result<i32, D::Error>
|
||||||
|
where
|
||||||
|
D: de::Deserializer<'de>,
|
||||||
|
{
|
||||||
|
let v: i32 = de::Deserialize::deserialize(deserializer)?;
|
||||||
|
if v >= 10 && v <= 1000 {
|
||||||
|
Ok(v)
|
||||||
|
} else {
|
||||||
|
Ok(Self::default_trackpad_speed())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
serde_field_bool!(
|
serde_field_bool!(
|
||||||
@ -1842,11 +1867,10 @@ impl UserDefaultConfig {
|
|||||||
keys::OPTION_CODEC_PREFERENCE => {
|
keys::OPTION_CODEC_PREFERENCE => {
|
||||||
self.get_string(key, "auto", vec!["vp8", "vp9", "av1", "h264", "h265"])
|
self.get_string(key, "auto", vec!["vp8", "vp9", "av1", "h264", "h265"])
|
||||||
}
|
}
|
||||||
keys::OPTION_CUSTOM_IMAGE_QUALITY => {
|
keys::OPTION_CUSTOM_IMAGE_QUALITY => self.get_num_string(key, 50.0, 10.0, 0xFFF as f64),
|
||||||
self.get_double_string(key, 50.0, 10.0, 0xFFF as f64)
|
keys::OPTION_CUSTOM_FPS => self.get_num_string(key, 30.0, 5.0, 120.0),
|
||||||
}
|
|
||||||
keys::OPTION_CUSTOM_FPS => self.get_double_string(key, 30.0, 5.0, 120.0),
|
|
||||||
keys::OPTION_ENABLE_FILE_COPY_PASTE => self.get_string(key, "Y", vec!["", "N"]),
|
keys::OPTION_ENABLE_FILE_COPY_PASTE => self.get_string(key, "Y", vec!["", "N"]),
|
||||||
|
keys::OPTION_TRACKPAD_SPEED => self.get_num_string(key, 100, 10, 1000),
|
||||||
_ => self
|
_ => self
|
||||||
.get_after(key)
|
.get_after(key)
|
||||||
.map(|v| v.to_string())
|
.map(|v| v.to_string())
|
||||||
@ -1886,10 +1910,13 @@ impl UserDefaultConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn get_double_string(&self, key: &str, default: f64, min: f64, max: f64) -> String {
|
fn get_num_string<T>(&self, key: &str, default: T, min: T, max: T) -> String
|
||||||
|
where
|
||||||
|
T: ToString + std::str::FromStr + std::cmp::PartialOrd + std::marker::Copy,
|
||||||
|
{
|
||||||
match self.get_after(key) {
|
match self.get_after(key) {
|
||||||
Some(option) => {
|
Some(option) => {
|
||||||
let v: f64 = option.parse().unwrap_or(default);
|
let v: T = option.parse().unwrap_or(default);
|
||||||
if v >= min && v <= max {
|
if v >= min && v <= max {
|
||||||
v.to_string()
|
v.to_string()
|
||||||
} else {
|
} else {
|
||||||
@ -2383,6 +2410,7 @@ pub mod keys {
|
|||||||
"enable-android-software-encoding-half-scale";
|
"enable-android-software-encoding-half-scale";
|
||||||
pub const OPTION_ENABLE_TRUSTED_DEVICES: &str = "enable-trusted-devices";
|
pub const OPTION_ENABLE_TRUSTED_DEVICES: &str = "enable-trusted-devices";
|
||||||
pub const OPTION_AV1_TEST: &str = "av1-test";
|
pub const OPTION_AV1_TEST: &str = "av1-test";
|
||||||
|
pub const OPTION_TRACKPAD_SPEED: &str = "trackpad-speed";
|
||||||
|
|
||||||
// buildin options
|
// buildin options
|
||||||
pub const OPTION_DISPLAY_NAME: &str = "display-name";
|
pub const OPTION_DISPLAY_NAME: &str = "display-name";
|
||||||
@ -2469,6 +2497,7 @@ pub mod keys {
|
|||||||
OPTION_CUSTOM_FPS,
|
OPTION_CUSTOM_FPS,
|
||||||
OPTION_CODEC_PREFERENCE,
|
OPTION_CODEC_PREFERENCE,
|
||||||
OPTION_SYNC_INIT_CLIPBOARD,
|
OPTION_SYNC_INIT_CLIPBOARD,
|
||||||
|
OPTION_TRACKPAD_SPEED,
|
||||||
];
|
];
|
||||||
// DEFAULT_LOCAL_SETTINGS, OVERWRITE_LOCAL_SETTINGS
|
// DEFAULT_LOCAL_SETTINGS, OVERWRITE_LOCAL_SETTINGS
|
||||||
pub const KEYS_LOCAL_SETTINGS: &[&str] = &[
|
pub const KEYS_LOCAL_SETTINGS: &[&str] = &[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user