Commit graph

7304 commits

Author SHA1 Message Date
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
Luiz Sardinha
edb1509298 ci(mac): fix cmake retry on package 2026-08-16 19:23:10 -04: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
6d5601582d i18n: add missing translation for clear settings button 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
rNoz
dd3944cabc feat(macos): preserve the left/right side of modifier keys on the client
The macOS client mapped every right-hand modifier (Control_R, Shift_R,
Alt_R, Super/Meta_R) to its left-hand virtual key and always emitted the
left device-dependent event flags, so a remote right-side modifier
arrived on the client as the left one. Apps that distinguish the two
(input methods that need Right Shift, hotkeys bound to Right Control,
etc.) never saw the right key.

Map the right-hand KeyIDs to their macOS right virtual keys, teach
isModifier() and setKeyboardModifiers() about them, track which side is
held, and emit the matching NX_DEVICER*KEYMASK device flag. This change
is client-only; the macOS server key map is unchanged.

fixes: #8486
Signed-off-by: rNoz <rnoz.commits@gmail.com>
2026-08-10 17:33:48 -04:00
barrelltitor
6740d30051 fix: release keys before x11 kb map refresh 2026-08-10 22:07:00 +01:00
barrelltitor
141779be1d fix: resync Windows keys from low-level hook state 2026-08-10 21:52:37 +01:00
barrelltitor
079dee7682 fix: preserve resolved Windows key button 2026-08-10 21:52:37 +01:00
barrelltitor
5094580606 fix: from windows side send a key up if it was down before 2026-08-10 21:52:37 +01:00
sithlord48
6692fa5636 refactor(SettingsDialog): move the Messages readonly dialog to the settingsDialog method 2026-08-10 15:45:51 -04:00
Daniel Gräfe
f765e829f2 fix(mac): invalidate event tap CFMachPort on disable 2026-08-08 12:31:15 -04:00
sithlord48
626e170eb6 refactor: move settings clear dialog to settings dialog 2026-08-07 13:51:40 +01:00
sithlord48
7ca8157bd2 refactor: Move the clear settings menu action to the settings dialog Advanced tab 2026-08-07 13:51:40 +01:00
sithlord48
0c902e0557 refactor(SettingsDialog): use a standard margin of 12 for inner margins 2026-08-07 13:51:40 +01:00
Momoyama
9c18070b17 fix(macos): avoid non-selectable IME layouts for remote keys
macOS input methods can expose non-user-selectable keyboard layouts bundled with the input method rather than the user's real selectable keyboard layout. Translating remote key events through those layouts can send IME punctuation semantics to clients instead of the expected ASCII punctuation.

Use the current ASCII-capable keyboard layout when the active input source has no Unicode key layout data and the reported keyboard layout is not directly selectable. Normal selectable keyboard layouts continue to use the existing translation path.

This affects macOS servers forwarding keyboard input to remote clients while an input-method-bundled layout is active.
2026-08-07 13:37:03 +01:00
sithlord48
ed1306aa5d refactor: remove unneeded includes from Core and Daemon IPC classes 2026-08-06 15:38:37 +01:00
sithlord48
86a970a90a build: simplify link for platform library
Add Public and Private links, simplify needed libs for general unix
2026-08-06 13:59:27 +01:00
sithlord48
9da4b5cb87 build: simplify links for gui library
public links to common platform net and Qt6::Widgets
2026-08-06 13:59:27 +01:00