mirror of
https://github.com/rustdesk/rustdesk
synced 2026-04-21 13:27:19 +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> |
||
|---|---|---|
| .. | ||
| DEBIAN | ||
| fdroid/patches | ||
| msi | ||
| pam.d | ||
| vcpkg | ||
| 32x32.png | ||
| 64x64.png | ||
| 128x128.png | ||
| 128x128@2x.png | ||
| ab.py | ||
| audits.py | ||
| bump.sh | ||
| design.svg | ||
| device-groups.py | ||
| devices.py | ||
| gen_icon.sh | ||
| icon.ico | ||
| icon.png | ||
| inline-sciter.py | ||
| job.py | ||
| lang.py | ||
| logo-header.svg | ||
| logo.svg | ||
| mac-icon.png | ||
| mac-tray-dark-x2.png | ||
| mac-tray-light-x2.png | ||
| manifest.xml | ||
| osx-dist.sh | ||
| pacman_install | ||
| PKGBUILD | ||
| rpm-flutter-suse.spec | ||
| rpm-flutter.spec | ||
| rpm-suse.spec | ||
| rpm.spec | ||
| rustdesk-banner.svg | ||
| rustdesk-link.desktop | ||
| rustdesk.desktop | ||
| rustdesk.service | ||
| scalable.svg | ||
| startwm.sh | ||
| strategies.py | ||
| tray-icon.ico | ||
| user-groups.py | ||
| users.py | ||
| xorg.conf | ||