Commit Graph

6088 Commits

Author SHA1 Message Date
ada2813f9f refactor: XSocket Classes => XSocketException Classes 2025-08-11 17:14:45 +01:00
906c07e4fd fix: MainWindow::setHostName only check if the screen is existing when in server mode, In severmode update the serverConfig serverName to prevent a case where the server screen is on the grid with the old name breaking the layout 2025-08-11 16:49:25 +01:00
a4c0e30bb8 fix: Ignore Mod2 and Mod3 to make log quieter 2025-08-07 15:31:52 -04:00
a5c9744258 fix: Account for more modifiers in the EI keymap calculation
Some modifiers, notably LevelThree, were not accounted for in the
modifier mask calculation. This leads to an incorrect keymap where some
key symbols were listed for keys without (or insufficient) modifiers.
Emulating those keys can then produce the wrong keysyms.

Reproducible with server and client on English(UK) layout and typing
e.g. [. That key has its own key AD11 (right of P) but is also on
the third level of AE08 (the 8 key). When the server sends the keyid 91
(for [) the client looks it up in the pre-generated keymap. It is found
first on the 8 key with no modifiers (because LevelThree was previously
ignored), hence the client simulates a key 8 press without modifiers.
This erroneously produced an 8 instead of the wanted [.

Fix this by ensuring that all modifiers are accounted for in the key
map. This fix is likely incomplete as it does not account for the full
virtual modifier to real modifier mappings possible (e.g. Mod5 *may* be
something other than AltGr) but it does push the can a bit further down
the road, for someone else to release the worms.

Closes: #8168
2025-08-07 15:31:52 -04:00
a8bf217e62 ci: Rename job 'reuse-lint' to 'lint-reuse' for consistency 2025-08-06 23:29:56 +01:00
fff25b4144 ci: Rename lint-check action to lint-clang 2025-08-06 23:29:56 +01:00
82ba5a4b97 ci: Remove redundant markdown header 2025-08-06 23:29:56 +01:00
436f5b7f0a ci: Fix naming conventions for step names and bash vars 2025-08-06 23:29:56 +01:00
cf1789545a ci: Surface lint and test results to comment
It's a bit annoying how you have to go to the workflow result to see the lint error and test results. This surfaces it to the comment in the PR.
2025-08-06 23:29:56 +01:00
d7f882f0c4 ci: Include clang-format version in lint summary
This could help confused developers understand why their clang-format is working differently to CI
2025-08-06 23:29:56 +01:00
2a84ef0ebf refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
4f644acbca ci: Use cat directly when printing PR comments
Wrapping in echo was stripping newlines.
2025-08-06 10:47:13 -04:00
9a9bd7e262 chore: Improve logging for active sides
For the longest time, this log line has bugged me:
```
active sides: e
```

It's hex, but it looks like a bug, since there's no `0x` prefix. Also, most humans can't read hex, so I added a string representation.

New version:
```
[2025-08-06T11:56:00] DEBUG: active sides: LRT (0x0e)
```
2025-08-06 08:38:00 -04:00
47bb33e065 fix: update inclusion of climits and cstdint headers
For INT_MAX and SIZE_MAX.
2025-08-06 13:03:52 +01:00
40423397e3 refactor: Config remove redundant != Operator in server/Config 2025-08-06 11:44:38 +01:00
4955e8c2ba refactor: Fingerprint, KeyMap, KeySequence and Action use default == operator 2025-08-06 11:44:38 +01:00
24480ce946 refactor: AppUtilUnix remove name from unused IEventQueue pointer 2025-08-06 11:44:38 +01:00
76d5ac0a34 refactor: KeyTypes::KeyModifierNameMapEntry, remove commented code 2025-08-06 11:44:38 +01:00
d20887f34a refactor: KeyState::updateModifierState, use std::ranges::set_difference in place of std::set_difference 2025-08-06 11:44:38 +01:00
0cbc922478 refactor: MSWindowsDesks::getCursorPos initialize pos to 0,0 2025-08-06 11:44:38 +01:00
38866cf2c1 refactor: remove unneeed constructors from DisplayInvalidExecption 2025-08-06 11:44:38 +01:00
32165f5b58 refactor: IKeyState remove need for malloc in alloc methods 2025-08-06 11:44:38 +01:00
1968669a39 refactor: App make m_bye private access it from the method bye 2025-08-06 11:44:38 +01:00
3b2b8a9ebe refactor: IKeyState: directly make string when spilting as arg to emplace 2025-08-06 11:44:38 +01:00
048ce47008 refactor: ServerConfig: used ranged loop to process neighbours 2025-08-06 11:44:38 +01:00
d321e2a874 refactor: TCPSocket Init m_socket before m_events 2025-08-06 11:44:38 +01:00
21f47de36c ci: Use reuse-actionv5 2025-08-06 05:54:25 -04:00
0352e1c6d6 chore: Improve logging in Server::onClipboardChanged 2025-08-05 14:41:50 -04:00
98d03fb098 chore: Improve logging in Server::handleClipboardGrabbed 2025-08-05 14:41:50 -04:00
739cdc1752 chore: Improve logging for DESKFLOW_MOUSE_ADJUSTMENT env var
We plan to move this elsewhere, but in the meantime, the DEBUG1 logging was too noisy. Also fixed some code style that was bugging me.
2025-08-05 14:41:50 -04:00
54a7ef24d9 refactor: Remove unused includes from KeyMap.cpp and use correct <algorithm> include 2025-08-05 08:56:53 -04:00
c4ff0b1832 refactor: Remove unnecessary debug log from KeyState::fakeKeys 2025-08-05 08:56:53 -04:00
b70c6556c9 refactor: mainwindow show displayVersion with start up info 2025-08-05 13:36:04 +01:00
80408b985e refactor: show display version for --version 2025-08-05 13:36:04 +01:00
ff1e7f3c9f refactor: ClientApp / ServerApp, remove do nothing updateStatus methods and calls 2025-08-04 13:46:27 +01:00
b2eb3a036d refactor: move ClientApp::handleScreenError / ServerApp::handleScreenError to base App Class 2025-08-04 13:46:27 +01:00
229fedf347 refactor: App::m_bye make protected 2025-08-04 13:46:27 +01:00
cfccee1592 refactor: TCPSocket, make m_events private access via getEvents method 2025-08-04 13:46:27 +01:00
0c728beb01 refactor: TCPListenSocket, replace make protected members private, use protected methods to acces them in the subclasses 2025-08-04 13:46:27 +01:00
4e01e3f337 refactor: make APP:m_events private access via exsisting getEvents method 2025-08-04 13:46:27 +01:00
92ae41852d chore: remove Unused Stopwatch::double operator 2025-08-04 13:46:27 +01:00
4f9b042f5a refactor: explicit constructor for PlatformScreen, FileTail, FunctionJob, FunctionEventJob, ServerConfig, ScreenSettingsDialog, KeySequenceWidget, NetworkAddress, AddClientDialog, ConfigReadContext, LockCursorToScreenAction, RestartServer And KeyboardBroadcastAction 2025-08-04 13:46:27 +01:00
1236fa4cab fix: server: initialize the m_protocol member with a default value
It is likely random whether the server works or not without
a manually configured protocol option, which is neither documented
nor enforced to be set.
With a random uninitialized value in m_protocol, this can happen:
[2025-08-03T12:39:57] NOTE: accepted client connection
[2025-08-03T12:39:57] FATAL: a runtime error occurred: XInvalidProtocol

Reports of "it works with debug enabled" are likely due to having
parts of the memory space the server object is allocated into being
cleared, and thus having a 0 (Synergy) startup value.
2025-08-04 12:47:13 +01:00
e69be64773 refactor: remove redundant != operators c++20 std will generate the !=operator as long as the class has an ==operator 2025-08-01 13:03:51 -04:00
c2db28a624 refactor: ServerProxy::setActiveServerLanguage take std::string_view 2025-08-01 13:03:51 -04:00
1f92f2a2ed chore: XWindowsScreen declare vars on seperate lines 2025-08-01 13:03:51 -04:00
74bbd5af25 chore: Fingerprint, remove unneed private label in struct 2025-08-01 13:03:51 -04:00
023037f7ee refactor: XWindowsClipboard, user std::format_to_n in place of snprintf 2025-08-01 13:03:51 -04:00
fe19f4de66 refactor: ServerProxy::setActiveServerLanguage, use std::string size method to get string in place of strlen 2025-08-01 13:03:51 -04:00
d120cc853d refactor: InputFilter, user std::ranges::partial_sort in == operator 2025-08-01 13:03:51 -04:00