mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-02-17 14:07:28 +08:00
* feat: Add relative mouse mode - Add "Relative Mouse Mode" toggle in desktop toolbar and bind to InputModel - Implement relative mouse movement path: Flutter pointer deltas -> `type: move_relative` -> new `MOUSE_TYPE_MOVE_RELATIVE` in Rust - In server input service, simulate relative movement via Enigo and keep latest cursor position in sync - Track pointer-lock center in Flutter (local widget + screen coordinates) and re-center OS cursor after each relative move - Update pointer-lock center on window move/resize/restore/maximize and when remote display geometry changes - Hide local cursor when relative mouse mode is active (both Flutter cursor and OS cursor), restore on leave/disable - On Windows, clip OS cursor to the window rect while in relative mode and release clip when leaving/turning off - Implement platform helpers: `get_cursor_pos`, `set_cursor_pos`, `show_cursor`, `clip_cursor` (no-op clip/hide on Linux for now) - Add keyboard shortcut Ctrl+Alt+Shift+M to toggle relative mode (enabled by default, works on all platforms) - Remove `enable-relative-mouse-shortcut` config option - shortcut is now always available when keyboard permission is granted - Handle window blur/focus/minimize events to properly release/restore cursor constraints - Add MOUSE_TYPE_MASK constant and unit tests for mouse event constants Note: Relative mouse mode state is NOT persisted to config (session-only). Note: On Linux, show_cursor and clip_cursor are no-ops; cursor hiding is handled by Flutter side. Signed-off-by: fufesou <linlong1266@gmail.com> * feat(mouse): relative mouse mode, exit hint Signed-off-by: fufesou <linlong1266@gmail.com> * refact(relative mouse): shortcut Signed-off-by: fufesou <linlong1266@gmail.com> --------- Signed-off-by: fufesou <linlong1266@gmail.com>
40 lines
1.0 KiB
TOML
40 lines
1.0 KiB
TOML
[package]
|
|
name = "rustdesk-portable-packer"
|
|
version = "1.4.5"
|
|
edition = "2021"
|
|
description = "RustDesk Remote Desktop"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
build = "build.rs"
|
|
|
|
[dependencies]
|
|
brotli = "3.4"
|
|
dirs = "5.0"
|
|
md5 = "0.7"
|
|
winapi = { version = "0.3", features = ["winbase"] }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
windows = { version = "0.61", features = [
|
|
"Wdk",
|
|
"Wdk_System",
|
|
"Wdk_System_SystemServices",
|
|
"Win32",
|
|
"Win32_System",
|
|
"Win32_System_SystemInformation",
|
|
] }
|
|
native-windows-gui = {version = "1.0", default-features = false, features = ["animation-timer", "image-decoder"]}
|
|
|
|
[package.metadata.winres]
|
|
LegalCopyright = "Copyright © 2025 Purslane Ltd. All rights reserved."
|
|
ProductName = "RustDesk"
|
|
OriginalFilename = "rustdesk.exe"
|
|
FileDescription = "RustDesk Remote Desktop"
|
|
#ProductVersion = ""
|
|
|
|
[target.'cfg(target_os="windows")'.build-dependencies]
|
|
winres = "0.1"
|
|
winapi = { version = "0.3", features = [ "winnt", "pdh", "synchapi" ] }
|
|
|
|
|