mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-06-22 10:02:20 +00: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> |
||
|---|---|---|
| .. | ||
| client | ||
| hbbs_http | ||
| lang | ||
| platform | ||
| plugin | ||
| privacy_mode | ||
| server | ||
| ui | ||
| whiteboard | ||
| auth_2fa.rs | ||
| cli.rs | ||
| client.rs | ||
| clipboard.rs | ||
| clipboard_file.rs | ||
| common.rs | ||
| core_main.rs | ||
| custom_server.rs | ||
| flutter.rs | ||
| flutter_ffi.rs | ||
| hbbs_http.rs | ||
| ipc.rs | ||
| kcp_stream.rs | ||
| keyboard.rs | ||
| lan.rs | ||
| lang.rs | ||
| lib.rs | ||
| main.rs | ||
| naming.rs | ||
| port_forward.rs | ||
| privacy_mode.rs | ||
| rendezvous_mediator.rs | ||
| server.rs | ||
| service.rs | ||
| tray.rs | ||
| ui.rs | ||
| ui_cm_interface.rs | ||
| ui_interface.rs | ||
| ui_session_interface.rs | ||
| updater.rs | ||
| virtual_display_manager.rs | ||