deskflow/src/lib/platform
tehreet 96f544de6d fix: capture the mouse on macOS while the cursor is on a client
On the server, while the cursor is on a client, every physical mouse move
warped the local cursor back to screen center and the tap callback returned
the mouse-move event instead of consuming it. That leaked continuous motion
to whatever local app sat under the centered cursor (e.g. a fullscreen game
or a centered video reacting to the phantom movement).

Capture the mouse the way macOS games do instead: dissociate the hardware
mouse from the cursor in leave() so the cursor freezes and hides, read raw
deltas from the event in onMouseMove(), consume off-screen moves in the tap
callback, and re-associate in enter() (disable() already does via
showCursor()). This retires the center-warp and the "bogus motion" edge
heuristic that only existed to paper over the warp.

fixes: #5871
2026-07-18 13:25:30 -04:00
..
CMakeLists.txt chore: remove unused wl-clipboard support 2026-06-18 22:06:37 +01:00
EiClipboard.cpp refactor: Use mutex to protect m_open / m_time in EiClipboard 2026-06-19 08:26:51 -04:00
EiClipboard.h refactor: Use mutex to protect m_open / m_time in EiClipboard 2026-06-19 08:26:51 -04:00
EiEventQueueBuffer.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
EiEventQueueBuffer.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
EiKeyState.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
EiKeyState.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
EiScreen.cpp fix(wayland): stop EiScreen cursor from following transient shape churn 2026-07-17 22:34:09 +01:00
EiScreen.h fix(wayland): stop EiScreen cursor from following transient shape churn 2026-07-17 22:34:09 +01:00
IMSWindowsClipboardFacade.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
IOSXKeyResource.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
IOSXKeyResource.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboard.cpp refactor: Use mutex to protect m_time in MSWindowsClipboard 2026-06-19 08:26:51 -04:00
MSWindowsClipboard.h refactor: Use mutex to protect m_time in MSWindowsClipboard 2026-06-19 08:26:51 -04:00
MSWindowsClipboardAnyTextConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardAnyTextConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardBitmapConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardBitmapConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardFacade.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardFacade.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardHTMLConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardHTMLConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardUTF16Converter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsClipboardUTF16Converter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsDebugOutputter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsDebugOutputter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsDesks.cpp refactor: replace use of insert for std::maps with try_emplace 2026-06-22 10:27:35 -04:00
MSWindowsDesks.h fix(client): restore relative cursor positions locally 2026-06-10 15:34:27 +01:00
MSWindowsEventQueueBuffer.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsEventQueueBuffer.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsHandle.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsHook.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsHook.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsKeyState.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsKeyState.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsPowerManager.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsPowerManager.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsProcess.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsProcess.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsScreen.cpp refactor: replace use of insert for std::maps with try_emplace 2026-06-22 10:27:35 -04:00
MSWindowsScreen.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsScreenSaver.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsScreenSaver.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsSession.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsSession.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsWatchdog.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
MSWindowsWatchdog.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXAutoTypes.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboard.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboard.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardAnyBitmapConverter.cpp chore: OSXClipboardAnyBitmapConverter remove unused includes 2025-11-07 15:54:19 -05:00
OSXClipboardAnyBitmapConverter.h refactor: IClipboard::EFormat => enum class Clipboard::Format 2025-07-31 13:41:29 +01:00
OSXClipboardAnyTextConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardAnyTextConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardBMPConverter.cpp fix(macos): update BMP handling to support extended headers and improve pixel offset calculation 2026-05-19 17:48:58 +01:00
OSXClipboardBMPConverter.h fix(macos): update BMP handling to support extended headers and improve pixel offset calculation 2026-05-19 17:48:58 +01:00
OSXClipboardHTMLConverter.cpp refactor: IClipboard::EFormat => enum class Clipboard::Format 2025-07-31 13:41:29 +01:00
OSXClipboardHTMLConverter.h refactor: IClipboard::EFormat => enum class Clipboard::Format 2025-07-31 13:41:29 +01:00
OSXClipboardTextConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardTextConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardUTF8Converter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardUTF8Converter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardUTF16Converter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXClipboardUTF16Converter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXCocoaApp.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXCocoaApp.m chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXEventQueueBuffer.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXEventQueueBuffer.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXKeyState.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXKeyState.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXMediaKeySupport.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXMediaKeySupport.m chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXPasteboardPeeker.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXPasteboardPeeker.m chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXPowerManager.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXPowerManager.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXScreen.h fix: capture the mouse on macOS while the cursor is on a client 2026-07-18 13:25:30 -04:00
OSXScreen.mm fix: capture the mouse on macOS while the cursor is on a client 2026-07-18 13:25:30 -04:00
OSXScreenSaver.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXScreenSaver.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXScreenSaverControl.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXScreenSaverUtil.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXScreenSaverUtil.m refactor: Reuse compliance 2025-01-27 17:05:47 -05:00
OSXUchrKeyResource.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
OSXUchrKeyResource.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
PortalClipboard.cpp feat: clipboard support for portal remote desktop 2026-06-18 22:06:37 +01:00
PortalClipboard.h feat: clipboard support for portal remote desktop 2026-06-18 22:06:37 +01:00
PortalInputCapture.cpp fix(wayland): only add input-capture barriers on the outer desktop edge 2026-07-17 22:11:03 +01:00
PortalInputCapture.h refactor: PortalInputCapture remove extra private section in header 2026-06-19 08:14:54 -04:00
PortalRemoteDesktop.cpp refactor: make PortalRemoteDesktop:handleSessionTransfer a const 2026-06-19 08:14:54 -04:00
PortalRemoteDesktop.h refactor: make PortalRemoteDesktop:handleSessionTransfer a const 2026-06-19 08:14:54 -04:00
XDGKeyUtil.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XDGKeyUtil.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XDGPortalRegistry.h chore: move platform/Wayland.h -> common/PlatformInfo.h 2025-11-06 09:12:18 -05:00
XDGPowerManager.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XDGPowerManager.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboard.cpp fix: reivse scoped_lock to avoid deadlock for XWindowsClipboard 2026-07-08 13:27:50 +01:00
XWindowsClipboard.h refactor: use Mutex to protect vars in XWindowClipboard 2026-06-19 08:26:51 -04:00
XWindowsClipboardAnyBitmapConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardAnyBitmapConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardBMPConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardBMPConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardHTMLConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardHTMLConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardTextConverter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardTextConverter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardUCS2Converter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardUCS2Converter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardUTF8Converter.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsClipboardUTF8Converter.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsConfig.h.in chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsEventQueueBuffer.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsEventQueueBuffer.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsKeyState.cpp refactor: replace use of insert for std::maps with try_emplace 2026-06-22 10:27:35 -04:00
XWindowsKeyState.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsScreen.cpp fix: Check options array is always an even size 2026-07-01 17:02:09 +01:00
XWindowsScreen.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsScreenSaver.cpp refactor: replace use of insert for std::maps with try_emplace 2026-06-22 10:27:35 -04:00
XWindowsScreenSaver.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsUtil.cpp chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00
XWindowsUtil.h chore: update 'Synergy App Ltd' copyright (company renamed) 2026-06-09 00:06:11 -04:00