opt: get supported keyboard modes
This commit is contained in:
parent
c267fc9d9b
commit
85620b73a7
@ -40,6 +40,7 @@ pub use tokio_socks::TargetAddr;
|
|||||||
pub mod password_security;
|
pub mod password_security;
|
||||||
pub use chrono;
|
pub use chrono;
|
||||||
pub use directories_next;
|
pub use directories_next;
|
||||||
|
pub mod keyboard;
|
||||||
|
|
||||||
#[cfg(feature = "quic")]
|
#[cfg(feature = "quic")]
|
||||||
pub type Stream = quic::Connection;
|
pub type Stream = quic::Connection;
|
||||||
|
@ -693,8 +693,8 @@ pub fn is_keyboard_mode_supported(keyboard_mode: &KeyboardMode, version_number:
|
|||||||
match keyboard_mode {
|
match keyboard_mode {
|
||||||
KeyboardMode::Legacy => true,
|
KeyboardMode::Legacy => true,
|
||||||
KeyboardMode::Map => version_number >= hbb_common::get_version_number("1.2.0"),
|
KeyboardMode::Map => version_number >= hbb_common::get_version_number("1.2.0"),
|
||||||
KeyboardMode::Translate => true,
|
KeyboardMode::Translate => false,
|
||||||
KeyboardMode::Auto => true,
|
KeyboardMode::Auto => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ use crate::client::{
|
|||||||
load_config, send_mouse, start_video_audio_threads, FileManager, Key, LoginConfigHandler,
|
load_config, send_mouse, start_video_audio_threads, FileManager, Key, LoginConfigHandler,
|
||||||
QualityStatus, KEY_MAP,
|
QualityStatus, KEY_MAP,
|
||||||
};
|
};
|
||||||
use crate::common::GrabState;
|
use crate::common::{is_keyboard_mode_supported, GrabState};
|
||||||
use crate::keyboard;
|
use crate::keyboard;
|
||||||
use crate::{client::Data, client::Interface};
|
use crate::{client::Data, client::Interface};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
@ -48,6 +48,10 @@ impl<T: InvokeUiSession> Session<T> {
|
|||||||
self.lc.read().unwrap().custom_image_quality.clone()
|
self.lc.read().unwrap().custom_image_quality.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_peer_version(&self) -> i64 {
|
||||||
|
self.lc.read().unwrap().version.clone()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_keyboard_mode(&self) -> String {
|
pub fn get_keyboard_mode(&self) -> String {
|
||||||
self.lc.read().unwrap().keyboard_mode.clone()
|
self.lc.read().unwrap().keyboard_mode.clone()
|
||||||
}
|
}
|
||||||
@ -198,6 +202,14 @@ impl<T: InvokeUiSession> Session<T> {
|
|||||||
crate::platform::is_xfce()
|
crate::platform::is_xfce()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_supported_keyboard_modes(&self) -> Vec<KeyboardMode> {
|
||||||
|
let version = self.get_peer_version();
|
||||||
|
KeyboardMode::iter()
|
||||||
|
.filter(|&mode| is_keyboard_mode_supported(mode, version))
|
||||||
|
.map(|&mode| mode)
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn remove_port_forward(&self, port: i32) {
|
pub fn remove_port_forward(&self, port: i32) {
|
||||||
let mut config = self.load_config();
|
let mut config = self.load_config();
|
||||||
config.port_forwards = config
|
config.port_forwards = config
|
||||||
|
Loading…
x
Reference in New Issue
Block a user