Fix clipboard synchronization not fully disabled in View Only mode (#15224)

* fix: view-only clipboard sync

Signed-off-by: Setani <little_stejan@hotmail.com>

* fix: gate Android MultiClipboards handling with clipboard permissions

Signed-off-by: Setani <little_stejan@hotmail.com>

---------

Signed-off-by: Setani <little_stejan@hotmail.com>
This commit is contained in:
littlestejan
2026-06-10 07:42:58 +08:00
committed by GitHub
parent 6426269d41
commit 84af60c07e
4 changed files with 21 additions and 11 deletions

View File

@@ -1426,7 +1426,8 @@ impl<T: InvokeUiSession> Remote<T> {
self.handler.set_cursor_position(cp);
}
Some(message::Union::Clipboard(cb)) => {
if !self.handler.lc.read().unwrap().disable_clipboard.v {
let lc = self.handler.lc.read().unwrap();
if !lc.disable_clipboard.v && !lc.view_only.v {
#[cfg(not(any(target_os = "android", target_os = "ios")))]
update_clipboard(vec![cb], ClipboardSide::Client);
#[cfg(target_os = "ios")]
@@ -1445,7 +1446,8 @@ impl<T: InvokeUiSession> Remote<T> {
}
}
Some(message::Union::MultiClipboards(_mcb)) => {
if !self.handler.lc.read().unwrap().disable_clipboard.v {
let lc = self.handler.lc.read().unwrap();
if !lc.disable_clipboard.v && !lc.view_only.v {
#[cfg(not(any(target_os = "android", target_os = "ios")))]
update_clipboard(_mcb.clipboards, ClipboardSide::Client);
#[cfg(target_os = "ios")]