Commit graph

4601 commits

Author SHA1 Message Date
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
Luiz Sardinha
df4294e949 build(mac): enable hardened runtime 2026-08-25 09:04:39 -04:00
sithlord48
cddf58684b build: use Q_OS_MACOS in place of depricated Q_OS_MAC 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
sithlord48
02b6e2e15d feat(ServerConfigDialog): enable reset to default enable it for only the advanced tab and reset options in the general config file 2026-08-16 15:38:07 +01:00
sithlord48
aaa08da6f8 fix(ServerConfigDialog): adjust external file line so it saves when edited via typed entry 2026-08-16 15:38:07 +01:00
sithlord48
0d72bf131f feat(ServerConfigDialog): enable reset option 2026-08-16 15:38:07 +01:00
sithlord48
f7ae12d772 refactor(ServerConfigDialog): rename onChange -> setButtonBoxEnabledButtons 2026-08-16 15:38:07 +01:00
sithlord48
4107e7bdda refactor(ServerConfigDialog): new isGeneralConfigModified method to track if the general config items changed use it in onChanged 2026-08-16 15:38:07 +01:00
sithlord48
fc95339477 refactor(ServerConfigDialog): use SettingsDialogButtonBox and enable control lock for general setting controled items 2026-08-14 13:04:16 +01:00
sithlord48
727191e9eb refactor(ServerConfigDialog): remove unneed slots 2026-08-14 13:04:16 +01:00
sithlord48
4db8c615bd refactor(serverConfigDialog):rename accept -> save 2026-08-14 13:04:16 +01:00
sithlord48
95923e0e90 refactor(serverConfigDialog):rename reject -> cancel 2026-08-14 13:04:16 +01:00
sithlord48
a7fa844536 refactor(Settings): log warning if saving to readonly settings 2026-08-14 13:04:16 +01:00
sithlord48
e1950ab347 feat(Client Config Dialog): use SettingsDialogButtonBox and make aware of read only settings 2026-08-14 13:04:16 +01:00
sithlord48
584a74af61 refactor(SettingDialog): update updateControls to include all controls 2026-08-14 13:04:16 +01:00
sithlord48
edf2dcbfb0 feat: use new SettingsDialogButtonBox for SettingsDialog 2026-08-14 13:04:16 +01:00
sithlord48
d084cd50bd feat(Settings): emit when setting file writable state has changed 2026-08-14 13:04:16 +01:00
David Sawick
4fc72eda23 fix(wayland): forward whole scroll ticks from hi-res wheels
Fixes #9120

Hi-res mouse wheels (like my logitech G502) send scrolls as fractional clicks. On a mac client, fractional events are truncated to zero lines. This fix accumulates those fractional events then emits the entire click 120 units at a time
2026-08-10 20:26:24 -04:00
fruitriin
a074de1b7c fix(macos): build key map with UCKeyTranslate to honor keyboard type 2026-08-11 01:11:26 +01:00
sithlord48
abcd4278fe refactor: skip calling setAppId for Qt version >= 6.10.0 2026-08-10 19:44:44 -04:00
sithlord48
cc813f016e chore: rename x11layoutsparser -> xkblayoutsparser 2026-08-11 00:23:35 +01:00
praharshaAdhikari
7a90a30ec8 feat: using xkbregistry instead of manually parsing evdev.xml 2026-08-11 00:23:35 +01:00
neon12345
22a4b135f0 Accumulate smooth scroll into full wheel clicks on server
fix(platform/ei): accumulate smooth scroll into full wheel clicks on server

On Wayland, two-finger smooth scroll events are delivered as per-frame pixel
deltas (e.g. 0.26, 0.53, 1.05 px per event).  The previous code quantized
these at the pixel level via `modf()` — any accumulated integer pixel (even
just 1) triggered a wheel event whose value was `pixels * 12`, i.e. 12, 24
or 36 units.  Because the deskflow protocol uses 120 units per standard
wheel click, these fractional clicks were silently dropped by the client
compositor and the user saw nothing on the secondary screen until a
very large/fast stroke pushed enough pixels through.

Switch to wheel-click-level accumulation: smooth scroll pixel deltas are
now scaled to fractional wheel-clicks (0.1 per pixel, keeping the 10 px ==
1 click convention) and only dispatched to the client when at least one
full 120-unit click has accumulated.  This uses `std::trunc()` (toward
zero) instead of `std::floor()` to avoid spurious clicks on negative
scroll values.

Physical mouse wheels (discrete scroll events, EI_EVENT_SCROLL_DISCRETE)
are unaffected and continue to be forwarded immediately as-is.

- `EiScreen.cpp`: replace `modf()` pixel quantization with fractional
  wheel-click accumulation using `std::trunc()`.
- `ScrollRemainder` struct comment: clarify the unit is now fractional
  wheel-clicks rather than pixels.
2026-08-10 23:31:59 +01:00