feat: enable macos cliprdr
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
This commit is contained in:
parent
2bb1310094
commit
7880cba0f9
202
Cargo.lock
generated
202
Cargo.lock
generated
@ -233,7 +233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
|
checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clipboard-win",
|
"clipboard-win",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"image",
|
"image",
|
||||||
"log",
|
"log",
|
||||||
"objc",
|
"objc",
|
||||||
@ -560,6 +560,16 @@ version = "1.3.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitmask-enum"
|
||||||
|
version = "2.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "49fb8528abca6895a5ada33d62aedd538a5c33e77068256483b44a3230270163"
|
||||||
|
dependencies = [
|
||||||
|
"quote 1.0.27",
|
||||||
|
"syn 2.0.15",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitvec"
|
name = "bitvec"
|
||||||
version = "1.0.1"
|
version = "1.0.1"
|
||||||
@ -587,6 +597,25 @@ dependencies = [
|
|||||||
"generic-array",
|
"generic-array",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "block-sys"
|
||||||
|
version = "0.1.0-beta.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
|
||||||
|
dependencies = [
|
||||||
|
"objc-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "block2"
|
||||||
|
version = "0.2.0-alpha.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
|
||||||
|
dependencies = [
|
||||||
|
"block-sys",
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "blocking"
|
name = "blocking"
|
||||||
version = "1.3.1"
|
version = "1.3.1"
|
||||||
@ -677,6 +706,23 @@ dependencies = [
|
|||||||
"pkg-config",
|
"pkg-config",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cacao"
|
||||||
|
version = "0.4.0-beta2"
|
||||||
|
source = "git+https://github.com/clslaid/cacao?branch=feat/set-file-urls#f4940678214705214be9e0e800d566651c32fd20"
|
||||||
|
dependencies = [
|
||||||
|
"bitmask-enum",
|
||||||
|
"block2",
|
||||||
|
"core-foundation 0.9.3 (git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd)",
|
||||||
|
"core-graphics 0.23.1",
|
||||||
|
"dispatch",
|
||||||
|
"lazy_static",
|
||||||
|
"libc",
|
||||||
|
"objc2",
|
||||||
|
"os_info",
|
||||||
|
"url",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cairo-rs"
|
name = "cairo-rs"
|
||||||
version = "0.16.7"
|
version = "0.16.7"
|
||||||
@ -931,6 +977,7 @@ checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
|
|||||||
name = "clipboard"
|
name = "clipboard"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"cacao",
|
||||||
"cc",
|
"cc",
|
||||||
"dashmap",
|
"dashmap",
|
||||||
"fuser",
|
"fuser",
|
||||||
@ -987,9 +1034,9 @@ dependencies = [
|
|||||||
"bitflags",
|
"bitflags",
|
||||||
"block",
|
"block",
|
||||||
"cocoa-foundation",
|
"cocoa-foundation",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"foreign-types",
|
"foreign-types 0.3.2",
|
||||||
"libc",
|
"libc",
|
||||||
"objc",
|
"objc",
|
||||||
]
|
]
|
||||||
@ -1002,9 +1049,9 @@ checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"block",
|
"block",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics-types",
|
"core-graphics-types 0.1.1",
|
||||||
"foreign-types",
|
"foreign-types 0.3.2",
|
||||||
"libc",
|
"libc",
|
||||||
"objc",
|
"objc",
|
||||||
]
|
]
|
||||||
@ -1136,6 +1183,15 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core-foundation"
|
||||||
|
version = "0.9.3"
|
||||||
|
source = "git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd#7d593d016175755e492a92ef89edca68ac3bd5cd"
|
||||||
|
dependencies = [
|
||||||
|
"core-foundation-sys 0.8.6",
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-foundation-sys"
|
name = "core-foundation-sys"
|
||||||
version = "0.6.2"
|
version = "0.6.2"
|
||||||
@ -1148,6 +1204,14 @@ version = "0.8.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
|
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core-foundation-sys"
|
||||||
|
version = "0.8.6"
|
||||||
|
source = "git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd#7d593d016175755e492a92ef89edca68ac3bd5cd"
|
||||||
|
dependencies = [
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-graphics"
|
name = "core-graphics"
|
||||||
version = "0.22.3"
|
version = "0.22.3"
|
||||||
@ -1155,12 +1219,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
|
checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics-types",
|
"core-graphics-types 0.1.1",
|
||||||
"foreign-types",
|
"foreign-types 0.3.2",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core-graphics"
|
||||||
|
version = "0.23.1"
|
||||||
|
source = "git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd#7d593d016175755e492a92ef89edca68ac3bd5cd"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"core-foundation 0.9.3 (git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd)",
|
||||||
|
"core-graphics-types 0.1.2",
|
||||||
|
"foreign-types 0.5.0",
|
||||||
|
"libc",
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-graphics-types"
|
name = "core-graphics-types"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
@ -1168,11 +1245,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
|
checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"foreign-types",
|
"foreign-types 0.3.2",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "core-graphics-types"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd#7d593d016175755e492a92ef89edca68ac3bd5cd"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"core-foundation 0.9.3 (git+https://github.com/madsmtm/core-foundation-rs.git?rev=7d593d016175755e492a92ef89edca68ac3bd5cd)",
|
||||||
|
"libc",
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "coreaudio-rs"
|
name = "coreaudio-rs"
|
||||||
version = "0.11.2"
|
version = "0.11.2"
|
||||||
@ -1829,7 +1917,7 @@ dependencies = [
|
|||||||
name = "enigo"
|
name = "enigo"
|
||||||
version = "0.0.14"
|
version = "0.0.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"hbb_common",
|
"hbb_common",
|
||||||
"log",
|
"log",
|
||||||
"objc",
|
"objc",
|
||||||
@ -2201,7 +2289,28 @@ version = "0.3.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"foreign-types-shared",
|
"foreign-types-shared 0.1.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "foreign-types"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
|
||||||
|
dependencies = [
|
||||||
|
"foreign-types-macros",
|
||||||
|
"foreign-types-shared 0.3.1",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "foreign-types-macros"
|
||||||
|
version = "0.2.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2 1.0.63",
|
||||||
|
"quote 1.0.27",
|
||||||
|
"syn 2.0.15",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2210,6 +2319,12 @@ version = "0.1.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "foreign-types-shared"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "form_urlencoded"
|
name = "form_urlencoded"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
@ -3367,7 +3482,7 @@ dependencies = [
|
|||||||
"anyhow",
|
"anyhow",
|
||||||
"apple-sys",
|
"apple-sys",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"shadow-rs",
|
"shadow-rs",
|
||||||
"windows 0.48.0",
|
"windows 0.48.0",
|
||||||
"winres",
|
"winres",
|
||||||
@ -4123,6 +4238,32 @@ dependencies = [
|
|||||||
"objc_id",
|
"objc_id",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc-sys"
|
||||||
|
version = "0.2.0-beta.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc2"
|
||||||
|
version = "0.3.0-beta.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a49f420f16c8814efdcd6b4258664de9d9920cbc26b6f95d034a1ca9850ccc2c"
|
||||||
|
dependencies = [
|
||||||
|
"block2",
|
||||||
|
"objc-sys",
|
||||||
|
"objc2-encode",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "objc2-encode"
|
||||||
|
version = "2.0.0-pre.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
|
||||||
|
dependencies = [
|
||||||
|
"objc-sys",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "objc_exception"
|
name = "objc_exception"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@ -4229,6 +4370,17 @@ dependencies = [
|
|||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "os_info"
|
||||||
|
version = "3.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"serde 1.0.163",
|
||||||
|
"winapi 0.3.9",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "os_str_bytes"
|
name = "os_str_bytes"
|
||||||
version = "6.5.0"
|
version = "6.5.0"
|
||||||
@ -4957,9 +5109,9 @@ version = "0.5.0-2"
|
|||||||
source = "git+https://github.com/fufesou/rdev#2e8221d653f4995c831ad52966e79a514516b1fa"
|
source = "git+https://github.com/fufesou/rdev#2e8221d653f4995c831ad52966e79a514516b1fa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation-sys 0.8.4",
|
"core-foundation-sys 0.8.4",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"dispatch",
|
"dispatch",
|
||||||
"enum-map",
|
"enum-map",
|
||||||
"epoll",
|
"epoll",
|
||||||
@ -5221,8 +5373,8 @@ dependencies = [
|
|||||||
"clap 4.2.7",
|
"clap 4.2.7",
|
||||||
"clipboard",
|
"clipboard",
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"cpal",
|
"cpal",
|
||||||
"crossbeam-queue",
|
"crossbeam-queue",
|
||||||
"ctrlc",
|
"ctrlc",
|
||||||
@ -5511,7 +5663,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
|
checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation-sys 0.8.4",
|
"core-foundation-sys 0.8.4",
|
||||||
"libc",
|
"libc",
|
||||||
"security-framework-sys",
|
"security-framework-sys",
|
||||||
@ -5927,7 +6079,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd"
|
checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"system-configuration-sys",
|
"system-configuration-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -5988,8 +6140,8 @@ dependencies = [
|
|||||||
"cairo-rs",
|
"cairo-rs",
|
||||||
"cc",
|
"cc",
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"core-foundation",
|
"core-foundation 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
"dispatch",
|
"dispatch",
|
||||||
"gdk",
|
"gdk",
|
||||||
@ -6121,7 +6273,7 @@ version = "0.6.1"
|
|||||||
source = "git+https://github.com/fufesou/The-Fat-Controller#9dd86151525fd010dc93f6bc9b6aedd1a75cc342"
|
source = "git+https://github.com/fufesou/The-Fat-Controller#9dd86151525fd010dc93f6bc9b6aedd1a75cc342"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
"x11 2.19.0",
|
"x11 2.19.0",
|
||||||
@ -6433,7 +6585,7 @@ version = "0.5.1"
|
|||||||
source = "git+https://github.com/rustdesk-org/tray-icon#ef98e7b98abed2e3da614277eced12a85bfb717c"
|
source = "git+https://github.com/rustdesk-org/tray-icon#ef98e7b98abed2e3da614277eced12a85bfb717c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"core-graphics",
|
"core-graphics 0.22.3",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
"dirs-next",
|
"dirs-next",
|
||||||
"libappindicator",
|
"libappindicator",
|
||||||
|
@ -7,14 +7,14 @@ use std::{
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use clipboard::ContextSend;
|
use clipboard::ContextSend;
|
||||||
use crossbeam_queue::ArrayQueue;
|
use crossbeam_queue::ArrayQueue;
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
use hbb_common::sleep;
|
use hbb_common::sleep;
|
||||||
#[cfg(not(target_os = "ios"))]
|
#[cfg(not(target_os = "ios"))]
|
||||||
use hbb_common::tokio::sync::mpsc::error::TryRecvError;
|
use hbb_common::tokio::sync::mpsc::error::TryRecvError;
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use hbb_common::tokio::sync::Mutex as TokioMutex;
|
use hbb_common::tokio::sync::Mutex as TokioMutex;
|
||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
allow_err,
|
allow_err,
|
||||||
@ -66,7 +66,7 @@ pub struct Remote<T: InvokeUiSession> {
|
|||||||
last_update_jobs_status: (Instant, HashMap<i32, u64>),
|
last_update_jobs_status: (Instant, HashMap<i32, u64>),
|
||||||
is_connected: bool,
|
is_connected: bool,
|
||||||
first_frame: bool,
|
first_frame: bool,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
client_conn_id: i32, // used for file clipboard
|
client_conn_id: i32, // used for file clipboard
|
||||||
data_count: Arc<AtomicUsize>,
|
data_count: Arc<AtomicUsize>,
|
||||||
frame_count_map: Arc<RwLock<HashMap<usize, usize>>>,
|
frame_count_map: Arc<RwLock<HashMap<usize, usize>>>,
|
||||||
@ -101,7 +101,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
last_update_jobs_status: (Instant::now(), Default::default()),
|
last_update_jobs_status: (Instant::now(), Default::default()),
|
||||||
is_connected: false,
|
is_connected: false,
|
||||||
first_frame: false,
|
first_frame: false,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
client_conn_id: 0,
|
client_conn_id: 0,
|
||||||
data_count: Arc::new(AtomicUsize::new(0)),
|
data_count: Arc::new(AtomicUsize::new(0)),
|
||||||
frame_count_map,
|
frame_count_map,
|
||||||
@ -146,14 +146,14 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// just build for now
|
// just build for now
|
||||||
#[cfg(not(any(target_os = "windows", target_os = "linux")))]
|
#[cfg(not(any(target_os = "windows", target_os = "linux", target_os = "macos")))]
|
||||||
let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::<i32>();
|
let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::<i32>();
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
let (_tx_holder, rx) = mpsc::unbounded_channel();
|
let (_tx_holder, rx) = mpsc::unbounded_channel();
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
let mut rx_clip_client_lock = Arc::new(TokioMutex::new(rx));
|
let mut rx_clip_client_lock = Arc::new(TokioMutex::new(rx));
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let is_conn_not_default = self.handler.is_file_transfer()
|
let is_conn_not_default = self.handler.is_file_transfer()
|
||||||
|| self.handler.is_port_forward()
|
|| self.handler.is_port_forward()
|
||||||
@ -164,7 +164,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
clipboard::get_rx_cliprdr_client(&self.handler.id);
|
clipboard::get_rx_cliprdr_client(&self.handler.id);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
let mut rx_clip_client = rx_clip_client_lock.lock().await;
|
let mut rx_clip_client = rx_clip_client_lock.lock().await;
|
||||||
|
|
||||||
let mut status_timer = time::interval(Duration::new(1, 0));
|
let mut status_timer = time::interval(Duration::new(1, 0));
|
||||||
@ -210,7 +210,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_msg = rx_clip_client.recv() => {
|
_msg = rx_clip_client.recv() => {
|
||||||
#[cfg(any(target_os="windows", target_os="linux"))]
|
#[cfg(any(target_os="windows", target_os="linux", target_os = "macos"))]
|
||||||
self.handle_local_clipboard_msg(&mut peer, _msg).await;
|
self.handle_local_clipboard_msg(&mut peer, _msg).await;
|
||||||
}
|
}
|
||||||
_ = self.timer.tick() => {
|
_ = self.timer.tick() => {
|
||||||
@ -278,7 +278,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
Client::try_stop_clipboard(&self.handler.id);
|
Client::try_stop_clipboard(&self.handler.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
if _set_disconnected_ok {
|
if _set_disconnected_ok {
|
||||||
let conn_id = self.client_conn_id;
|
let conn_id = self.client_conn_id;
|
||||||
log::debug!("try empty cliprdr for conn_id {}", conn_id);
|
log::debug!("try empty cliprdr for conn_id {}", conn_id);
|
||||||
@ -289,7 +289,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
async fn handle_local_clipboard_msg(
|
async fn handle_local_clipboard_msg(
|
||||||
&self,
|
&self,
|
||||||
peer: &mut crate::client::FramedStream,
|
peer: &mut crate::client::FramedStream,
|
||||||
@ -1143,7 +1143,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
Some(message::Union::Cliprdr(clip)) => {
|
Some(message::Union::Cliprdr(clip)) => {
|
||||||
self.handle_cliprdr_msg(clip);
|
self.handle_cliprdr_msg(clip);
|
||||||
}
|
}
|
||||||
@ -1704,7 +1704,7 @@ impl<T: InvokeUiSession> Remote<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn check_clipboard_file_context(&self) {
|
fn check_clipboard_file_context(&self) {
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let enabled = *self.handler.server_file_transfer_enabled.read().unwrap()
|
let enabled = *self.handler.server_file_transfer_enabled.read().unwrap()
|
||||||
&& self.handler.lc.read().unwrap().enable_file_transfer.v;
|
&& self.handler.lc.read().unwrap().enable_file_transfer.v;
|
||||||
|
@ -58,7 +58,7 @@ mod ui_session_interface;
|
|||||||
|
|
||||||
mod hbbs_http;
|
mod hbbs_http;
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
pub mod clipboard_file;
|
pub mod clipboard_file;
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use super::{input_service::*, *};
|
use super::{input_service::*, *};
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use crate::clipboard_file::*;
|
use crate::clipboard_file::*;
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
use crate::common::update_clipboard;
|
use crate::common::update_clipboard;
|
||||||
@ -192,7 +192,7 @@ pub struct Connection {
|
|||||||
// by peer
|
// by peer
|
||||||
disable_audio: bool,
|
disable_audio: bool,
|
||||||
// by peer
|
// by peer
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
enable_file_transfer: bool,
|
enable_file_transfer: bool,
|
||||||
// by peer
|
// by peer
|
||||||
audio_sender: Option<MediaSender>,
|
audio_sender: Option<MediaSender>,
|
||||||
@ -330,7 +330,7 @@ impl Connection {
|
|||||||
show_remote_cursor: false,
|
show_remote_cursor: false,
|
||||||
ip: "".to_owned(),
|
ip: "".to_owned(),
|
||||||
disable_audio: false,
|
disable_audio: false,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
enable_file_transfer: false,
|
enable_file_transfer: false,
|
||||||
disable_clipboard: false,
|
disable_clipboard: false,
|
||||||
disable_keyboard: false,
|
disable_keyboard: false,
|
||||||
@ -1236,7 +1236,7 @@ impl Connection {
|
|||||||
self.audio && !self.disable_audio
|
self.audio && !self.disable_audio
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
fn file_transfer_enabled(&self) -> bool {
|
fn file_transfer_enabled(&self) -> bool {
|
||||||
self.file && self.enable_file_transfer
|
self.file && self.enable_file_transfer
|
||||||
}
|
}
|
||||||
@ -1806,7 +1806,7 @@ impl Connection {
|
|||||||
}
|
}
|
||||||
Some(message::Union::Cliprdr(_clip)) =>
|
Some(message::Union::Cliprdr(_clip)) =>
|
||||||
{
|
{
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
if let Some(clip) = msg_2_clip(_clip) {
|
if let Some(clip) = msg_2_clip(_clip) {
|
||||||
log::debug!("got clipfile from client peer");
|
log::debug!("got clipfile from client peer");
|
||||||
self.send_to_cm(ipc::Data::ClipboardFile(clip))
|
self.send_to_cm(ipc::Data::ClipboardFile(clip))
|
||||||
@ -2390,7 +2390,7 @@ impl Connection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
if let Ok(q) = o.enable_file_transfer.enum_value() {
|
if let Ok(q) = o.enable_file_transfer.enum_value() {
|
||||||
if q != BoolOption::NotSet {
|
if q != BoolOption::NotSet {
|
||||||
self.enable_file_transfer = q == BoolOption::Yes;
|
self.enable_file_transfer = q == BoolOption::Yes;
|
||||||
|
@ -196,7 +196,7 @@ class Header: Reactor.Component {
|
|||||||
{!cursor_embedded && <li #show-remote-cursor .toggle-option><span>{svg_checkmark}</span>{translate('Show remote cursor')}</li>}
|
{!cursor_embedded && <li #show-remote-cursor .toggle-option><span>{svg_checkmark}</span>{translate('Show remote cursor')}</li>}
|
||||||
<li #show-quality-monitor .toggle-option><span>{svg_checkmark}</span>{translate('Show quality monitor')}</li>
|
<li #show-quality-monitor .toggle-option><span>{svg_checkmark}</span>{translate('Show quality monitor')}</li>
|
||||||
{audio_enabled ? <li #disable-audio .toggle-option><span>{svg_checkmark}</span>{translate('Mute')}</li> : ""}
|
{audio_enabled ? <li #disable-audio .toggle-option><span>{svg_checkmark}</span>{translate('Mute')}</li> : ""}
|
||||||
{((is_win && pi.platform == "Windows")||(is_linux && pi.platform == "Linux")) && file_enabled ? <li #enable-file-transfer .toggle-option><span>{svg_checkmark}</span>{translate('Allow file copy and paste')}</li> : ""}
|
{((is_win && pi.platform == "Windows")||(is_linux && pi.platform == "Linux"))||(is_osx && pi.platform == "Mac OS") && file_enabled ? <li #enable-file-transfer .toggle-option><span>{svg_checkmark}</span>{translate('Allow file copy and paste')}</li> : ""}
|
||||||
{keyboard_enabled && clipboard_enabled ? <li #disable-clipboard .toggle-option><span>{svg_checkmark}</span>{translate('Disable clipboard')}</li> : ""}
|
{keyboard_enabled && clipboard_enabled ? <li #disable-clipboard .toggle-option><span>{svg_checkmark}</span>{translate('Disable clipboard')}</li> : ""}
|
||||||
{keyboard_enabled ? <li #lock-after-session-end .toggle-option><span>{svg_checkmark}</span>{translate('Lock after session end')}</li> : ""}
|
{keyboard_enabled ? <li #lock-after-session-end .toggle-option><span>{svg_checkmark}</span>{translate('Lock after session end')}</li> : ""}
|
||||||
{keyboard_enabled && pi.platform == "Windows" ? <li #privacy-mode><span>{svg_checkmark}</span>{translate('Privacy mode')}</li> : ""}
|
{keyboard_enabled && pi.platform == "Windows" ? <li #privacy-mode><span>{svg_checkmark}</span>{translate('Privacy mode')}</li> : ""}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#[cfg(any(target_os = "android", target_os = "ios", feature = "flutter"))]
|
#[cfg(any(target_os = "android", target_os = "ios", feature = "flutter"))]
|
||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
@ -15,11 +15,11 @@ use std::{
|
|||||||
use crate::ipc::Connection;
|
use crate::ipc::Connection;
|
||||||
#[cfg(not(any(target_os = "ios")))]
|
#[cfg(not(any(target_os = "ios")))]
|
||||||
use crate::ipc::{self, Data};
|
use crate::ipc::{self, Data};
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use clipboard::ContextSend;
|
use clipboard::ContextSend;
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
use hbb_common::tokio::sync::mpsc::unbounded_channel;
|
use hbb_common::tokio::sync::mpsc::unbounded_channel;
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
use hbb_common::tokio::sync::Mutex as TokioMutex;
|
use hbb_common::tokio::sync::Mutex as TokioMutex;
|
||||||
use hbb_common::{
|
use hbb_common::{
|
||||||
allow_err,
|
allow_err,
|
||||||
@ -70,9 +70,9 @@ struct IpcTaskRunner<T: InvokeUiCM> {
|
|||||||
close: bool,
|
close: bool,
|
||||||
running: bool,
|
running: bool,
|
||||||
conn_id: i32,
|
conn_id: i32,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
file_transfer_enabled: bool,
|
file_transfer_enabled: bool,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
file_transfer_enabled_peer: bool,
|
file_transfer_enabled_peer: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
fn is_authorized(&self, id: i32) -> bool {
|
fn is_authorized(&self, id: i32) -> bool {
|
||||||
CLIENTS
|
CLIENTS
|
||||||
.read()
|
.read()
|
||||||
@ -186,7 +186,7 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
|
|||||||
.map(|c| c.disconnected = true);
|
.map(|c| c.disconnected = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let _ = ContextSend::proc(|context| -> ResultType<()> {
|
let _ = ContextSend::proc(|context| -> ResultType<()> {
|
||||||
context.empty_clipboard(id)?;
|
context.empty_clipboard(id)?;
|
||||||
@ -330,14 +330,14 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
// for tmp use, without real conn id
|
// for tmp use, without real conn id
|
||||||
let mut write_jobs: Vec<fs::TransferJob> = Vec::new();
|
let mut write_jobs: Vec<fs::TransferJob> = Vec::new();
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux"), target_os = "macos")]
|
||||||
let is_authorized = self.cm.is_authorized(self.conn_id);
|
let is_authorized = self.cm.is_authorized(self.conn_id);
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
let rx_clip1;
|
let rx_clip1;
|
||||||
let mut rx_clip;
|
let mut rx_clip;
|
||||||
let _tx_clip;
|
let _tx_clip;
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
if self.conn_id > 0 && is_authorized {
|
if self.conn_id > 0 && is_authorized {
|
||||||
log::debug!("Clipboard is enabled from client peer: type 1");
|
log::debug!("Clipboard is enabled from client peer: type 1");
|
||||||
rx_clip1 = clipboard::get_rx_cliprdr_server(self.conn_id);
|
rx_clip1 = clipboard::get_rx_cliprdr_server(self.conn_id);
|
||||||
@ -349,12 +349,12 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
rx_clip1 = Arc::new(TokioMutex::new(rx_clip2));
|
rx_clip1 = Arc::new(TokioMutex::new(rx_clip2));
|
||||||
rx_clip = rx_clip1.lock().await;
|
rx_clip = rx_clip1.lock().await;
|
||||||
}
|
}
|
||||||
#[cfg(not(any(target_os = "windows", target_os = "linux")))]
|
#[cfg(not(any(target_os = "windows", target_os = "linux", target_os = "macos")))]
|
||||||
{
|
{
|
||||||
(_tx_clip, rx_clip) = unbounded_channel::<i32>();
|
(_tx_clip, rx_clip) = unbounded_channel::<i32>();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
if ContextSend::is_enabled() {
|
if ContextSend::is_enabled() {
|
||||||
log::debug!("Clipboard is enabled");
|
log::debug!("Clipboard is enabled");
|
||||||
@ -382,7 +382,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
log::debug!("conn_id: {}", id);
|
log::debug!("conn_id: {}", id);
|
||||||
self.cm.add_connection(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording, from_switch,self.tx.clone());
|
self.cm.add_connection(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording, from_switch,self.tx.clone());
|
||||||
self.conn_id = id;
|
self.conn_id = id;
|
||||||
#[cfg(any(target_os = "linux", target_os = "windows"))]
|
#[cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
self.file_transfer_enabled = _file_transfer_enabled;
|
self.file_transfer_enabled = _file_transfer_enabled;
|
||||||
}
|
}
|
||||||
@ -425,7 +425,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
}
|
}
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
Data::ClipboardFile(_clip) => {
|
Data::ClipboardFile(_clip) => {
|
||||||
#[cfg(any(target_os = "windows", target_os="linux"))]
|
#[cfg(any(target_os = "windows", target_os="linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let is_stopping_allowed = _clip.is_stopping_allowed_from_peer();
|
let is_stopping_allowed = _clip.is_stopping_allowed_from_peer();
|
||||||
let is_clipboard_enabled = ContextSend::is_enabled();
|
let is_clipboard_enabled = ContextSend::is_enabled();
|
||||||
@ -450,7 +450,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Data::ClipboardFileEnabled(_enabled) => {
|
Data::ClipboardFileEnabled(_enabled) => {
|
||||||
#[cfg(any(target_os= "windows",target_os ="linux"))]
|
#[cfg(any(target_os= "windows",target_os ="linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
self.file_transfer_enabled_peer = _enabled;
|
self.file_transfer_enabled_peer = _enabled;
|
||||||
}
|
}
|
||||||
@ -489,7 +489,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
}
|
}
|
||||||
match &data {
|
match &data {
|
||||||
Data::SwitchPermission{name: _name, enabled: _enabled} => {
|
Data::SwitchPermission{name: _name, enabled: _enabled} => {
|
||||||
#[cfg(any(target_os="linux", target_os="windows"))]
|
#[cfg(any(target_os="linux", target_os="windows", target_os = "macos"))]
|
||||||
if _name == "file" {
|
if _name == "file" {
|
||||||
self.file_transfer_enabled = *_enabled;
|
self.file_transfer_enabled = *_enabled;
|
||||||
}
|
}
|
||||||
@ -504,7 +504,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
},
|
},
|
||||||
clip_file = rx_clip.recv() => match clip_file {
|
clip_file = rx_clip.recv() => match clip_file {
|
||||||
Some(_clip) => {
|
Some(_clip) => {
|
||||||
#[cfg(any(target_os = "windows", target_os ="linux"))]
|
#[cfg(any(target_os = "windows", target_os ="linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let is_stopping_allowed = _clip.is_stopping_allowed();
|
let is_stopping_allowed = _clip.is_stopping_allowed();
|
||||||
let is_clipboard_enabled = ContextSend::is_enabled();
|
let is_clipboard_enabled = ContextSend::is_enabled();
|
||||||
@ -543,9 +543,9 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
|||||||
close: true,
|
close: true,
|
||||||
running: true,
|
running: true,
|
||||||
conn_id: 0,
|
conn_id: 0,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
file_transfer_enabled: false,
|
file_transfer_enabled: false,
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
file_transfer_enabled_peer: false,
|
file_transfer_enabled_peer: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -580,7 +580,7 @@ pub async fn start_ipc<T: InvokeUiCM>(cm: ConnectionManager<T>) {
|
|||||||
Config::get_option("enable-file-transfer").is_empty()
|
Config::get_option("enable-file-transfer").is_empty()
|
||||||
);
|
);
|
||||||
|
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
ContextSend::enable(Config::get_option("enable-file-transfer").is_empty());
|
ContextSend::enable(Config::get_option("enable-file-transfer").is_empty());
|
||||||
|
|
||||||
match ipc::new_listener("_cm").await {
|
match ipc::new_listener("_cm").await {
|
||||||
|
@ -1007,7 +1007,7 @@ async fn check_connect_status_(reconnect: bool, rx: mpsc::UnboundedReceiver<ipc:
|
|||||||
let mut mouse_time = 0;
|
let mut mouse_time = 0;
|
||||||
#[cfg(not(feature = "flutter"))]
|
#[cfg(not(feature = "flutter"))]
|
||||||
let mut id = "".to_owned();
|
let mut id = "".to_owned();
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
let mut enable_file_transfer = "".to_owned();
|
let mut enable_file_transfer = "".to_owned();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
@ -1030,7 +1030,7 @@ async fn check_connect_status_(reconnect: bool, rx: mpsc::UnboundedReceiver<ipc:
|
|||||||
*OPTIONS.lock().unwrap() = v;
|
*OPTIONS.lock().unwrap() = v;
|
||||||
*OPTION_SYNCED.lock().unwrap() = true;
|
*OPTION_SYNCED.lock().unwrap() = true;
|
||||||
|
|
||||||
#[cfg(any(target_os="windows", target_os="linux"))]
|
#[cfg(any(target_os="windows", target_os="linux", target_os = "macos"))]
|
||||||
{
|
{
|
||||||
let b = OPTIONS.lock().unwrap().get("enable-file-transfer").map(|x| x.to_string()).unwrap_or_default();
|
let b = OPTIONS.lock().unwrap().get("enable-file-transfer").map(|x| x.to_string()).unwrap_or_default();
|
||||||
if b != enable_file_transfer {
|
if b != enable_file_transfer {
|
||||||
|
@ -1420,7 +1420,7 @@ impl<T: InvokeUiSession> Session<T> {
|
|||||||
#[tokio::main(flavor = "current_thread")]
|
#[tokio::main(flavor = "current_thread")]
|
||||||
pub async fn io_loop<T: InvokeUiSession>(handler: Session<T>, round: u32) {
|
pub async fn io_loop<T: InvokeUiSession>(handler: Session<T>, round: u32) {
|
||||||
// It is ok to call this function multiple times.
|
// It is ok to call this function multiple times.
|
||||||
#[cfg(any(target_os = "windows", target_os = "linux"))]
|
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
|
||||||
if !handler.is_file_transfer() && !handler.is_port_forward() {
|
if !handler.is_file_transfer() && !handler.is_port_forward() {
|
||||||
clipboard::ContextSend::enable(true);
|
clipboard::ContextSend::enable(true);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user