Commit graph

850 commits

Author SHA1 Message Date
alfredo1491
6212f9bec6 refactor(win32): update MSWindowsSession and MsWindowsWatchdog to use MsWindowsHandle 2026-05-26 16:58:02 +01:00
Nick Bolton
62a8ee749f fix(macos): update BMP handling to support extended headers and improve pixel offset calculation 2026-05-19 17:48:58 +01:00
sithlord48
acf865fa11 refactor(log): Convert LogLevel into a class using LogLevel::Level as its enum, store values as the Option string display as localized string' 2026-05-15 11:47:10 +01:00
sithlord48
b0413ed4ff refactor: move base/LogLevel -> common/LogLevel 2026-05-15 11:47:10 +01:00
sithlord48
8e469379e8 refactor(log): Squash all Debug1 And Debug2 logs into Verbose
fixes: #9725
BREAKING_CHANGE: log level values have changed settings for log level may need to be reset
2026-05-15 11:47:10 +01:00
Luiz Sardinha
426b43fc09 fix(mac): protect TIS API calls with a mutex (they are not thread safe) 2026-05-12 06:17:14 +01:00
Luiz Sardinha
44c5c15082 fix(mac): prevent cursor warps from outside quartz event loop (if active) 2026-05-12 05:54:49 +01:00
Ketan Patel
c3ecd0b806 fix(macos): recognize brightness media keys
Map macOS brightness media key events back to Deskflow key IDs so they
can be captured and forwarded from macOS servers.

Fixes #9709
2026-05-08 18:57:09 +01:00
Peter Hutterer
1c789fd6a9 feat: handle input capture session persistence
Use the new libportal API to start a CreateSession2, then set the
session persistence and read/write the tokens as required. This allows
us to start a server without a permission dialog - provided the portal
supports it and the user is ok with that.
2026-05-05 11:58:02 +01:00
Nick Bolton
69339b5bcc feat(daemon): add missing command info log line for daemon 2026-04-25 10:48:09 -04:00
Nick Bolton
5c480ca515 fix(cve): run switch commands as normal user on Windows to prevent privilege escalation
CVE-2026-41477
2026-04-25 10:48:09 -04:00
Luiz Sardinha
5a028c12d4 fix(mac): quit core if accessibility permissions are revoked 2026-04-21 06:54:05 -04:00
Nick Bolton
e4bafaf88f refactor(win32): More consistent Windows desk switch log line 2026-04-07 13:09:29 +01:00
Nick Bolton
aaef600ffa fix(mac): Remove Cocoa app loop and fix macOS event tap for Qt threading 2026-04-07 13:09:29 +01:00
sithlord48
41fcc1e815 refactor: add [[no_unique_address]] hint for XWindowsScreen::m_powerManager 2026-03-30 10:36:15 +01:00
Artturi Alm
469a238b04 fix: AltGr for clients w/windows+finnish-layout. 2026-03-26 10:52:45 +00:00
sithlord48
ebab0eb62e chore: remove unused ScreenException methods for reconnect timer 2026-03-25 14:54:57 +00:00
UberKitten
ac8cc42b7a fix: retry OpenClipboard() on Windows
OpenClipboard() can fail transiently when another process holds the
clipboard mutex. Add a retry loop (5 attempts, 5ms delay) so that
Deskflow handles brief contention gracefully instead of immediately
failing.
2026-03-12 08:19:43 -04:00
sithlord48
12cf55d4fc build: Replace WINAPI_CARBON with Q_OS_MAC 2026-03-06 08:57:31 -05:00
Luiz Sardinha
c80cd56f27 fix: properly handling infinite timeout for macOS on EventQueue 2026-02-27 19:47:59 -05:00
sithlord48
9188d4b1c1 build: require libportal 0.9.1 2026-02-26 12:52:03 +00:00
sithlord48
4c7f546c60 fix: XWindowScreen, do not send a scroll delta for 0
fixes: #9477
2026-02-18 18:11:38 +00:00
wake
e555b63931 fix: extra "a" with Rime and apply clang-format 2026-02-11 14:33:04 +00:00
sithlord48
a532f655c1 feat: support horizontal scrolling
fixes: #7220
based on 9f15b1bcf2
Co-authored-by: Evan Maddock <maddock.evan@vivaldi.net>
2026-02-11 11:59:28 +00:00
sithlord48
050cb649c2 refactor: use ScrollDelta for fakeMouseWheel 2026-02-09 09:02:21 +00:00
sithlord48
5612e99f1d refactor: Move the scrollModifiers to ISecondaryScreen 2026-02-09 09:02:21 +00:00
sithlord48
a520e3b2e9 refactor: check settigns for invertscroll in PlatformScreen 2026-02-06 12:51:39 +00:00
sithlord48
0f6ec6c196 refactor: XWindowsScreen use a fixed minimum step value in place of the scroll speed setting 2026-02-06 12:51:39 +00:00
sithlord48
857326b274 refactor: rename PlatformScreen::mapClientScrollDirection -> PlatformScreen::applyClientScrollModifier
prepare for horizontal scroll support by having it handle pairs of x and y values
2026-02-06 12:51:39 +00:00
sithlord48
84e1e722c0 fix: Send extra mouse buttons on mac os servers to clients 2026-02-04 09:56:10 +00:00
sithlord48
4200de66ee fix: scroll Issue on X11 by not checking for wheel in mapButtonToX 2026-02-04 09:45:25 +00:00
sithlord48
05c050b81e fix: handle back mouse on xwindows and windows
based on : 9f15b1bcf2
fixes: #5682
2026-02-03 09:41:22 +00:00
Johannes Berg
f065979b3f Fix: detect key repeat in libei input
For libei, there's no indication that a key is repeated.
However, sending repeated key down events (DKDN instead
of DKRP for the synergy protocol) can be confusing to
clients, which then causes issues like in #7971.

Detect repeated key down events in EiScreen server and
send them to the client with the repeat flag set, so in
e.g. synergy that causes the DKRP messages, to be less
confusing.

For me this fixes an issue where the synergy client is
creating a USB device, which requires repeated events
to be entirely dropped since the host OS where the USB
device is connected will do its own repeat when a key
is held down.
2026-01-30 12:19:29 +00:00
sithlord48
1ed394e3ef refactor: remove DEBUG3 and move DEBUG3 messages to DEBUG2 2026-01-26 12:35:00 +00:00
sithlord48
2cf4fc8d0a refactor: remove DEBUG4 level and move any DEBUG4 messages to DEBUG3 2026-01-26 12:35:00 +00:00
sithlord48
d6ffcd37d7 refactor: remove DEBUG5 level and move any DEBUG5 message to DEBUG4 2026-01-26 12:35:00 +00:00
Nick Bolton
e7eb324f16 chore: fix typos in variable names and log messages 2026-01-22 14:30:45 +00:00
sithlord48
ed114252e2 refactor: WlClipboard, close not kill running copy process on exit 2026-01-22 12:35:54 +00:00
sithlord48
aca274e9ee refactor: add (C) to copyright header where missing 2026-01-18 15:38:59 +00:00
sithlord48
d8dfba6372 fix: OSXScreenSaver, do not call CFRelease for empty processesNames 2026-01-13 01:13:32 +00:00
sithlord48
3ff06b7d9a refactor: use ArchDaemonWindows::getDaemonQuitMessage directly
remove now unused ArchMiscWindows::getDaemonQuitMessage
2026-01-06 12:05:23 +00:00
Povilas Kanapickas
3598eb6a47 refactor: RM IEventQueueBuffer::newTimer and IEventQueueBuffer::deleteTimer
port: https://github.com/input-leap/input-leap/pull/1592
Original Message:
  base: Remove IEventQueueBuffor newTimer and deleteTimer APIs
        In the current implementation timers are not platform-specific. On all
        currently supported platforms timer constrution and destruction is
        simple new and delete, so it does not make sense having this
        customization point.
Original Author: p12tic
Ported By: sithlord48
2026-01-02 12:27:24 +00:00
sithlord48
7682e17afe refactor: Move src/lib/Config => src/lib/platform/XWindowsConfig
This file is used only in XWindows related platform code.
2025-12-30 17:22:00 +00:00
sithlord48
f8d9de1f2e build: platform, remove unneeeded include_dir for mac os system path 2025-12-30 13:41:33 +00:00
sithlord48
53d2c5e399 build: platform, remove link_wayland_libs macro and do it in its only used place allowing more simplification of the linking platform lib 2025-12-30 13:41:33 +00:00
sithlord48
89ee932db3 build: adjust spacing for cmake files 2025-12-30 13:41:33 +00:00
sithlord48
525123573e chore: use U for wlclipboard setting name 2025-11-21 10:38:50 +00:00
sithlord48
92e3e9ac64 refactor: wlClipboard fix some sonar issues 2025-11-20 07:57:31 -05:00
sithlord48
50fd3365e8 chore: WlClipboard remove unused process control methods 2025-11-20 07:57:31 -05:00
sithlord48
4ebf5ff479 refactor: WlClipbaord::empty use QProcess 2025-11-20 07:57:31 -05:00
sithlord48
ab4feaa037 refactor: WlClipbaord::add use QProcess to set the clipboard 2025-11-20 07:57:31 -05:00
sithlord48
21900ade68 refactor: make WlClipboard a QObject subclass 2025-11-20 07:57:31 -05:00
sithlord48
7b0e8e8188 chore: WlClipboard remove unused executeCommand 2025-11-20 07:57:31 -05:00
sithlord48
c5f7a3792a refactor: WlClipboard::get use QProcess 2025-11-20 07:57:31 -05:00
sithlord48
7a60f0cc9e refactor: WlClipboard, use QProcess to get available mimeTypes 2025-11-20 07:57:31 -05:00
sithlord48
9ed0b06a42 refactor: WlClipboard mimetypes use QStrings 2025-11-20 07:57:31 -05:00
sithlord48
5ef4f64b11 refactor: use QDateTime::currentMSecsSinceEpoc behind WlClipboard::getCurrentTime 2025-11-20 07:57:31 -05:00
sithlord48
c7e90d3cf5 refactor: WlClipboard::isAvailable use QStandardPaths::findExecutable to check if the apps exist. remove WlClipboard::checkCommandExists 2025-11-20 07:57:31 -05:00
sithlord48
d157713a85 feat: Settings expose settings to use wl-clipboard backend. Disable clipboard on wayland if this settings is disabled 2025-11-20 07:57:31 -05:00
sithlord48
90e7d475f8 refactor: WlClipboardCollection minor sonar cleanup 2025-11-20 07:57:31 -05:00
sithlord48
ecb03297fd refactor: EiScreen Sonar cleanup for new clipboard items 2025-11-20 07:57:31 -05:00
sithlord48
a09dfad22a chore: WlClipboard remove unused private setClipboardData and setClipboardData methods 2025-11-20 07:57:31 -05:00
sithlord48
9960b657e3 chore: rename EiClipboard -> WaylandClipboardCollection 2025-11-20 07:57:31 -05:00
sithlord48
bbabb91d42 chore: rename src/lib/platform/WaylandClipboard -> src/lib/platform/WlClipboard 2025-11-20 07:57:31 -05:00
Jörg Thalheim
e55c67fa2f feat: add wayland clipboard support via wl-clipboard
this is currently based on wl-copy/wl-paste.
One could probably just implement wl-copy/wl-paste without adding much
complexity and better performance.

Co-authored-by: KoljaFrahm <GitHub.Kolja@dfgh.net>
2025-11-20 07:57:31 -05:00
sithlord48
4d2597c31b refactor: XDGKeyUtil no need to add std:: for uint32_t 2025-11-14 13:28:41 +00:00
sithlord48
281cda1d14 refactor XDGKeyUtil::mapKeyToKeyID cleanup default case make i in the if and not case the already right type returned 2025-11-14 13:28:41 +00:00
sithlord48
4a67694676 build: new build option BUILD_X11 to control building of X11 backend 2025-11-14 13:28:41 +00:00
sithlord48
f45df39032 refactor: XDGKeyUtil, make s_keySymToUCS4 static map 2025-11-14 13:28:41 +00:00
sithlord48
186a20a1ac feat: XDGKeyUtil, use Xkbcommon Keysym names
this removes the need for any x11 releated headers when using EI screens
2025-11-14 13:28:41 +00:00
sithlord48
7eee265010 refactor: make s_map1008FF private static array 2025-11-14 13:28:41 +00:00
sithlord48
b3cd759a4e chore: remove unused KeySyms Tyepdef 2025-11-14 13:28:41 +00:00
James Le Cuirot
93beb491db fix: Split XKB code out of XWindowsUtil to allow building without X11
the xprotoheaders are still required for EI, but nothing more.
2025-11-14 13:28:41 +00:00
Brett Lawson
6a86c2990e fix: Adjust OS X MouseMove handling to use live cursor position. 2025-11-11 11:15:41 -05:00
sithlord48
1875c599a4 refactor: define EventQueueTimer to its own header not once per IEventQueue impl 2025-11-10 07:08:29 -05:00
sithlord48
ab1a87ba04 chore: remove MsWindowClipboardTextConverter 2025-11-10 11:52:42 +00:00
sithlord48
d492ddfbbb chore: LogOutputters remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
c91e051082 chore: PlatformScreen remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
7ce5ce5d41 chore: XWindowsUtils remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
68a15486ae chore: XWindowsScreen remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
bb42cfb8fd chore: XWindows Clipboard remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
af0321ce77 chore: XDGPowerManager remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
fbdee8e10e chore: PortalRemoteDesktop remove unneeded includes 2025-11-07 15:54:19 -05:00
sithlord48
489d984ab6 chore: PortalInputCapture remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
1e672bb8a1 chore: EiScreen remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
6147e9604b chore: EiEventQueueBuffer remove unneeded includes 2025-11-07 15:54:19 -05:00
sithlord48
97367a20c5 chore: OSXUchrKeyResouce remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
5a029110a3 chore: OSXScreenSaver remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
e4557c6b95 chore: OSXScreen remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
685312866b chore: OSXKeyState remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
a0959e0334 chore OSXClipboardTextConvertor remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
a376a714e8 chore: OSXClipboardAnyBitmapConverter remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
21a7d7db4b chore: OSXClipboard remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
8b89489d40 chore: MSWindowsHook inclue Directional Types directly not thru protocol types 2025-11-07 15:54:19 -05:00
sithlord48
e8073de989 chore: MSWindowsEventQueueBuffer remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
74e4f1a1e1 chore: MSWindowsClipboardTextConvertor remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
d9493da173 chore: MsWindowsClipboardFacade, remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
0e8fdb18d8 chore: MsWindowsClipboard, remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
e07a9f58f7 refactor: MSWindowsClipBoard, use Text converter as last option 2025-11-07 15:54:19 -05:00
sithlord48
19814c61d7 chore: MSWindowsProcess remove unused includes 2025-11-07 15:54:19 -05:00