Commit graph

7340 commits

Author SHA1 Message Date
Stefan Wasilewski
0b7a72ae0e fix connect timeout deadlock 2026-09-20 02:20:33 +04:00
Nick Bolton
49e6293a4d fix(client): add per-version server proxies for older servers
A client that downgrades to a 1.6 or 1.7 server parsed key repeat with the 1.8 format and swallowed the messages behind it. ServerProxy is now the 1.6 form with 1.7 and 1.8 subclasses picked by the negotiated version, mirroring the ClientProxy classes.
2026-09-18 20:15:14 +01:00
Nick Bolton
6638076b85 fix(server): send key repeat without language to pre-1.8 clients
fixes: #10069
fixes: #9483
fixes: #9101

The 2021 language change put the string into the frozen 1.1 proxy, so every client below 1.8 (Barrier, Input Leap, Synergy 1.14.1 and older) disconnected on the first key repeat. Adds a test pinning the bytes each proxy version sends.
2026-09-18 20:15:14 +01:00
Nick Bolton
1e32335890 refactor(protocol): name key down constants by version
kMsgDKeyDown is now the current DKDL form and kMsgDKeyDown1_1 the DKDN form, matching the 1_0 suffix used for legacy forms. No wire change.
2026-09-18 20:15:14 +01:00
OceanMan20
ac475f0b1b fix(wayland): sync locked modifiers from EI keyboard modifiers event
fixes: #8437
2026-09-18 14:14:18 +01:00
Nick Bolton
23b0d7792d fix(log): rotate the log instead of deleting it 2026-09-17 12:21:37 +00:00
KoljaFrahm
217166c06b feat: globalshortcuts portal support 2026-09-15 19:16:53 +01:00
Luiz Sardinha
ce2f948c29 fix(mac): run event queue events in autoreleasepool 2026-09-11 17:21:22 +00:00
Timothy Redaelli
71929a3418 fix(wayland): track held mouse buttons in EiScreen
isAnyMouseButtonDown() always returned false, so the server never
considered the screen locked and could switch away mid-drag.

Track the pressed buttons in a bitset fed by the button events. There is
no way to poll them from libei, so drop the whole set whenever the state
stops being trustworthy: a paused device is reset to neutral by the EIS
side, a removed device sends nothing more, and releasing the input
capture ends the event stream. That rule now lives in updateButtons(),
which also puts EiScreen on the same resync path the other platforms
already use.
2026-09-11 18:07:25 +01:00
KoljaFrahm
d6874dfe27 fix: Only enable the screen after connecting to the client
To be able to react to rules in screen->activate() that are enabled in setPrimaryClient, we have to reverse the order of the two calls. The same goes for screen->deactivate()
2026-09-11 13:52:08 +01:00
wildoranges
adb4f89453 fix(client): validate LSYN payload length before parsing remote layouts
fixes: #10107

A malicious server can send a language synchronisation (LSYN) message
with a single-byte payload. size()-2 then underflows to SIZE_MAX and
substr(2, 2) throws std::out_of_range, terminating the client.

Reject odd-length payloads before mutating state, mirroring the
existing DSOP even-length check; an empty payload is still treated as
a normal clear.
2026-09-10 11:44:10 +00:00
Nick Bolton
fac2f540c5 docs: point security reports at private disclosure 2026-09-10 11:21:17 +00:00
sithlord48
206ee9a155 fix(settings): keyword typo heatbeat -> heartbeat 2026-09-10 10:09:07 +01:00
ElCruncharino
a930c87ea4 fix(wayland): reset clipboard portal state when EnableClipboard changes
give the portal a fresh chance to grant clipboard when the user toggles
the setting, instead of staying stuck on whatever it decided last time.
2026-09-04 12:38:39 +01:00
ElCruncharino
0ab18b86b3 fix(wayland): stop reprompting for portal permission on every restore
some backends never report clipboard as enabled even when granted, so the retry looped forever; now it only retries once per role, then keeps the session.
2026-09-04 12:38:39 +01:00
ElCruncharino
0baecf3fa7 fix: clear settings should wipe the state file too 2026-09-03 21:52:55 +01:00
Ian Monroe
13c5655976 feat: support link-local connections in Preferences dialog
most link-local IPs are just noise, but if an entire interface is link-local
only, maybe someone is hooking up their computers directly by ethernet cable
Still filter virtual interfacts with only local link
2026-09-03 20:17:59 +01:00
Nick Bolton
4b7491472d fix(wayland): reject garbage pointer deltas from libei 2026-09-02 12:43:06 -04:00
KoljaFrahm
8c426b7885 fix: let the client exit gracefully 2026-09-01 08:02:53 -04:00
KoljaFrahm
8dfdf8739a fix: delete coreApp 2026-08-31 20:02:45 +01:00
KoljaFrahm
44d7b8d091 fix(wayland): delete ScrollRemainder in EiScreen 2026-08-31 20:02:45 +01:00
KoljaFrahm
58a6736667 fix: let inhibitScreenCall succeed when nothing was inhibited 2026-08-31 20:02:45 +01:00
KoljaFrahm
e212d4e71a fix: don't show an error when ipc server is closed 2026-08-31 20:02:45 +01:00
KoljaFrahm
1d7a7585c7 fix: correct wrong screen entered warning
In #7437, we replaced an assert with an if for logging, but forgot to negate the if clause
2026-08-31 20:02:45 +01:00
KoljaFrahm
8cdf735925 refactor: don't route startNode through AppUtil 2026-08-31 20:02:45 +01:00
KoljaFrahm
5845b3edb5 chore: delete dead InputFilter::removeFilterRule 2026-08-31 20:02:45 +01:00
sithlord48
e3f42ed398 fix(clipboard): check oob for clipboard before reading number of formats 2026-08-27 09:45:45 -04:00
ChangMin Oh
fdc61ac3cd fix(windows): send space for ctrl+space and shift+space with korean IME 2026-08-27 14:21:21 +01:00
sithlord48
a6e98c1ac1 ci: disable fedora h264 repo we do not need this 2026-08-27 14:06:41 +01:00
Luiz Sardinha
c20870cc7a ci(mac): fixing bad conflict resolution (missing APPLE_CODESIGN_DEV for arm64) + providing log on notarization failure 2026-08-25 12:26:31 -04:00
Luiz Sardinha
0e3232b194 ci: producing signed and notarized mac artifacts 2026-08-25 09:52:51 -04:00
Luiz Sardinha
df4294e949 build(mac): enable hardened runtime 2026-08-25 09:04:39 -04:00
Luiz Sardinha
c0044962c9 build(mac): using older macos to build requires deep signing (as required to build intel) 2026-08-25 09:04:39 -04:00
Luiz Sardinha
49097d17d5 build(mac): ensuring the app remains signed after qt's deploy 2026-08-25 09:04:39 -04:00
sithlord48
13191a04df ci: bump Qt to 6.11.2 for mac arm and windows builds 2026-08-25 08:44:35 -04:00
sithlord48
cddf58684b build: use Q_OS_MACOS in place of depricated Q_OS_MAC 2026-08-25 08:44:35 -04:00
sithlord48
2e6f4ddf8b ci: force use of current master (via sha) of aqtinstall until newer path for windows qt is supported by a release 2026-08-25 08:44:35 -04:00
AdvancedSorceryInstitute
703b135a82 fix(server): read boolean server options with toBool() 2026-08-25 13:10:05 +01:00
sithlord48
1892690c14 refactor(Hotkey): remove protected and friends add accessors for needed Action items 2026-08-25 12:13:40 +01:00
sithlord48
b06975850a refactor(Hotkey): move hotkey to common 2026-08-25 12:13:40 +01:00
sithlord48
68f6c39498 refactor(Action): remove friends and protected 2026-08-25 12:13:40 +01:00
sithlord48
41fb627876 refactor(Action): move methods impls to cpp file 2026-08-25 12:13:40 +01:00
sithlord48
b8d230ef5f refactor(Action): SettingsKeys namespace to struct 2026-08-25 12:13:40 +01:00
sithlord48
3c0122a223 refactor(Action): move Action to common 2026-08-25 12:13:40 +01:00
sithlord48
78724254d1 refactor(KeySequence): move KeySequence to common 2026-08-25 12:13:40 +01:00
sithlord48
a0a368928c refactor(MainWindow): set shortcut for preferences action to the standard preferences sequence 2026-08-19 13:28:36 +01:00
sithlord48
b48961c873 refactor(Mainwindow): set the showHelp action to use the standard help shortcut sequence 2026-08-19 13:28:36 +01:00
sithlord48
fa6e4cdbae refactor(HelpDialog): start with closebutton as default action and focused 2026-08-19 13:28:36 +01:00
kyle
e856cce65b fix(win): normalise malformed macOS clipboard DIB 2026-08-18 12:54:26 +01:00
Yoshiaki Kasahara
9a3a299c8d i18n(ja): update Japanese(ja) translation
Check and update unfinished translation
2026-08-18 07:26:53 -04:00