fix view mode

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2023-03-17 11:27:22 +08:00
parent 450a9cdb35
commit 774694714d
8 changed files with 103 additions and 91 deletions

View File

@@ -1235,6 +1235,24 @@ impl LoginConfigHandler {
config.show_quality_monitor.v = !config.show_quality_monitor.v;
} else if name == "allow_swap_key" {
config.allow_swap_key.v = !config.allow_swap_key.v;
} else if name == "view-only" {
config.view_only.v = !config.view_only.v;
let f = |b: bool| {
if b {
BoolOption::Yes.into()
} else {
BoolOption::No.into()
}
};
if config.view_only.v {
option.disable_keyboard = f(true);
option.disable_clipboard = f(true);
option.show_remote_cursor = f(true);
} else {
option.disable_keyboard = f(false);
option.disable_clipboard = f(self.get_toggle_option("disable-clipboard"));
option.show_remote_cursor = f(self.get_toggle_option("show-remote-cursor"));
}
} else {
let is_set = self
.options
@@ -1242,7 +1260,12 @@ impl LoginConfigHandler {
.map(|o| !o.is_empty())
.unwrap_or(false);
if is_set {
self.config.options.remove(&name);
if name == "zoom-cursor" {
self.config.options.insert(name, "".to_owned());
} else {
// Notice: When PeerConfig loads, the default value is taken when the option key does not exist.
self.config.options.remove(&name);
}
} else {
self.config.options.insert(name, "Y".to_owned());
}
@@ -1395,6 +1418,8 @@ impl LoginConfigHandler {
self.config.show_quality_monitor.v
} else if name == "allow_swap_key" {
self.config.allow_swap_key.v
} else if name == "view-only" {
self.config.view_only.v
} else {
!self.get_option(name).is_empty()
}