Commit graph

7290 commits

Author SHA1 Message Date
sithlord48
49eb5cf334 ci: use fedora latest and rawhide version for building 2026-07-30 21:53:12 +01:00
sithlord48
55c7109c8f build(arch): adjust for libgcc package name 2026-07-30 21:25:03 +01:00
sithlord48
9a912abfa7 chore: remove windowGeometry from validsetting list it a state only item 2026-07-30 16:19:47 +01:00
sithlord48
7d9d85b85f chore(settings): remove un needed over qualification on local names 2026-07-30 16:19:47 +01:00
sithlord48
cebeea03ed refactor (settings): save xdgtokens in state not settings 2026-07-30 16:19:47 +01:00
sithlord48
10a653b467 build: flatpak use kde platform 6.11 2026-07-30 16:05:57 +01:00
Luiz Sardinha
0bc325addc fix(mac): properly handle system initiated quit events 2026-07-28 17:26:09 +01:00
sithlord48
352f494bee docs: Pack in markdown for use in help viewer, remove user docs as they are now normal docs to ship
removes need for doxygen to build general documents
2026-07-28 12:09:51 -04:00
sithlord48
99eb7dc27f feat: add view help to help menu 2026-07-28 12:09:51 -04:00
sithlord48
05f42e6483 build: place mac os docs in resources/docs 2026-07-28 12:09:51 -04:00
rNoz
3006b95a02 fix(macos): null-check the input source languages before counting them
TISGetInputSourceProperty returns NULL for an input source that has no
kTISPropertyInputSourceLanguages value, but both loops evaluate
CFArrayGetCount(layoutLanguages) before the "&& layoutLanguages" guard.
The guard is therefore dead and CFArrayGetCount dereferences NULL.

Test the pointer first.

Signed-off-by: rNoz <rnoz.commits@gmail.com>
2026-07-28 16:20:12 +01:00
ElCruncharino
35d877e128 refactor: make SecureSocket write-retry state per connection
doWrite()'s retry/buffer state was held in function-local static
variables, shared across every SecureSocket instance in the process
rather than per connection. Move it to instance members, and simplify
secureRead()/secureWrite()'s retry counters (also static, but not
load-bearing across calls) to plain locals.
2026-07-28 09:06:06 -04:00
ElCruncharino
59d41b906e fix(win): stop TLS sockets busy-spinning the socket poll loop
pollSocket() caches a socket's writability and skips waiting once it's
known writable, relying on writeSocket() to clear the cache on
WSAEWOULDBLOCK. SecureSocket writes via SSL_write(), bypassing
writeSocket() entirely, so the cache never clears and the multiplexer
spins at a zero timeout instead of blocking whenever TLS hits
backpressure.

Add IArchNetwork::resetPollWriteOnSocket() and call it from
checkResult()'s SSL_ERROR_WANT_WRITE case, mirroring writeSocket()'s
existing WSAEWOULDBLOCK handling.
2026-07-28 09:06:06 -04:00
ZeroSegFault
0d7414d89a fix(mac): preserve mouse event numbers when dragging on macOS 27 2026-07-27 12:28:35 +01:00
thiago
831f9cb044 fix all keyboard shortcuts send the same keystroke 2026-07-26 21:11:40 -04:00
sithlord48
3dd6b6a49f build: remove gtk3 2026-07-23 12:16:22 +01:00
sithlord48
778950c247 build: remove glib2 dependency 2026-07-23 12:16:22 +01:00
sithlord48
d9c01486e8 build: remove libm links 2026-07-23 12:16:22 +01:00
sithlord48
afe502d2f9 ci: valgrind run ctests 2026-07-23 12:05:17 +01:00
sithlord48
9981910814 build: remove google tests and remaining gtest 2026-07-20 18:35:07 +01:00
sithlord48
63c83b8640 build: enable CMP0207, Use native paths when gathering windows dll runtime depends 2026-07-20 18:03:33 +01:00
ElCruncharino
6d48d3663e fix: release EIS emulation grab when idle so client screens can sleep 2026-07-20 12:52:21 -04:00
Luiz Sardinha
d38c69c05d fix(mac): ensure background clicks work correctly on macOS 27 2026-07-20 12:11:22 +01:00
sithlord48
48ee839357 build: put coverage items in more sane locations 2026-07-20 09:09:24 +01:00
sithlord48
d3e5a94861 bulid: move main cmake options to one place 2026-07-20 09:09:24 +01:00
sithlord48
92d0fa86c8 build: find Qt in topLevel CMake 2026-07-20 09:09:24 +01:00
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
ElCruncharino
89a6c7f2ed fix(wayland): stop EiScreen cursor from following transient shape churn
updateShape() unconditionally recentered the cursor and notified the
server on every call, even mid-churn when no device reports a region
yet. Only touch tracked state once a real region is found, and only
notify the server when the shape actually changed.
2026-07-17 22:34:09 +01:00
TSUMUGI-XE
e8e9d1c193 fix(wayland): only add input-capture barriers on the outer desktop edge
On a multi-monitor server the portal reports one input-capture zone per
output. handleZonesChanged added a pointer barrier on every active side of
every zone, including edges that sit on an internal seam between two adjacent
monitors. The portal rejects such a barrier ("adjacent to multiple monitor
edges"), and because a single rejected barrier fails the whole
set_pointer_barriers request, input capture never engaged on multi-monitor
Wayland servers.

Compute the union (bounding box) of all zones first, then add a barrier for a
given side only when that zone edge lies on the outer boundary of the union,
skipping internal seams.
2026-07-17 22:11:03 +01:00
sithlord48
857cc219a8 i18n(es): Change Abierto -> Abrir 2026-07-16 12:57:08 +01:00
开心
6592dab84e fix: defer client disconnect cleanup 2026-07-15 11:45:02 +00:00
开心
6934dbe62b fix: keep event handlers alive during dispatch 2026-07-15 11:45:02 +00:00
Nick Bolton
39bf4fbe84 fix(package): improve msvc runtime version check on Windows 2026-07-13 11:21:18 +00:00
sithlord48
8acf76c5d1 refactor: simplify Config::readSectionOptions to look for only keystroke mousepress and end 2026-07-13 09:55:11 +01:00
sithlord48
06b7fe1691 refactor(settings): do not read address from old settings 2026-07-13 09:55:11 +01:00
Nick Bolton
1995423cb8 fix: improve fingerprint handling 2026-07-10 15:12:42 +00:00
Nick Bolton
74392eea6c fix: rename updateLocalFingerprint to updateFingerprintButton for clarity
The function name didn't make it's actual side effects clear to me
2026-07-10 15:12:42 +00:00
Nick Bolton
4cb5c3ec9c fix: disconnect portal selection-transfer from parent session
Wrong session logged a glib critical on teardown.
2026-07-10 12:07:46 +00:00
Nick Bolton
f0f3428d50 fix: stop portal input capture thread on server exit
Server aborted with "pure virtual method called" when the bind address
was in use: EiScreen's PortalInputCapture glib thread outlived Arch and
hit its freed vtable. ~EiScreen never deleted m_portalInputCapture, and
a fatal startup threw past cleanupServer(). Fix both.
2026-07-10 12:07:46 +00:00
Josh Harris
c8231208c1 fix(win32): close running Deskflow processes during MSI install
Add util:CloseApplication entries for deskflow.exe, deskflow-core.exe,
deskflow-server.exe and deskflow-client.exe so Windows Installer's
Restart Manager can shut them down before file replacement. Without
this, in-place upgrades (especially pre-1.24 -> 1.24+, where the
old server/client binaries need removing) hit files-in-use and fall
back to prompting the user for a reboot.
2026-07-09 12:15:50 +01:00
SASANO Takayoshi
2c37169f73 fix: reivse scoped_lock to avoid deadlock for XWindowsClipboard
fix #9890
2026-07-08 13:27:50 +01:00
Nick Bolton
3f2571dfa3 fix: simplify key translation logic by removing clamping 2026-07-06 12:16:05 +01:00
Nick Bolton
fc44b0bb18 fix: restore client protocol downgrade message 2026-07-04 15:58:17 +01:00
BeaCox
bcd3a658fc fix: use local clipboard limit for client receive 2026-07-04 00:53:42 +01:00
BeaCox
8a535fd5dd fix: enforce clipboard receive size limits 2026-07-04 00:53:42 +01:00
sithlord48
205a3c803e fix: clamp mapped modifiers 2026-07-03 13:44:59 +01:00
sithlord48
b21f5a7ca8 i18n: make sure log levels text is translated 2026-07-02 12:07:44 +00:00
Yoshiaki Kasahara
f7b5f48520 i18n(ja): update Japanese(ja) translation
Check and update unfinished translation
2026-07-02 10:55:47 +00:00
sithlord48
8266fbbe6a fix: Check options array is always an even size 2026-07-01 17:02:09 +01:00
sithlord48
570e68e910 ci: update release action to overwrite gh_pages 2026-06-29 06:35:08 +01:00