Commit graph

3617 commits

Author SHA1 Message Date
sithlord48
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
Christian Schmidt
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
sithlord48
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
sithlord48
c2db28a624 refactor: ServerProxy::setActiveServerLanguage take std::string_view 2025-08-01 13:03:51 -04:00
sithlord48
1f92f2a2ed chore: XWindowsScreen declare vars on seperate lines 2025-08-01 13:03:51 -04:00
sithlord48
74bbd5af25 chore: Fingerprint, remove unneed private label in struct 2025-08-01 13:03:51 -04:00
sithlord48
023037f7ee refactor: XWindowsClipboard, user std::format_to_n in place of snprintf 2025-08-01 13:03:51 -04:00
sithlord48
fe19f4de66 refactor: ServerProxy::setActiveServerLanguage, use std::string size method to get string in place of strlen 2025-08-01 13:03:51 -04:00
sithlord48
d120cc853d refactor: InputFilter, user std::ranges::partial_sort in == operator 2025-08-01 13:03:51 -04:00
sithlord48
c78665dc35 refactor: XWindowsKeyState, updateKeysymMap use std::ranges::fill to fill modifier array 2025-08-01 13:03:51 -04:00
sithlord48
c4c4c09eb2 refactor: XwindowsClipboard , use std::ranges::for_each in sendReply 2025-08-01 13:03:51 -04:00
sithlord48
2cccc3d0c8 refactor: use std::ranges::find_if when possible 2025-08-01 13:03:51 -04:00
sithlord48
59c414ebad refactor: IKeyState: use emplace in place of insert for set addition 2025-08-01 13:03:51 -04:00
sithlord48
1e7143b85e refactor: IKeyState, remove name from unused IEventQueue in constructor 2025-08-01 13:03:51 -04:00
sithlord48
a6068ad6f6 refactor: Log use std::format in place of snprintf, when not running on macOS... 2025-08-01 13:03:51 -04:00
Corentin Rossignon
11caf55522 fix: Wrong m_buttons vector size in case of maxButton inferior to numButtons 2025-08-01 08:18:57 -04:00
sithlord48
f73d098b1f refactor: Unify ENetworkProtocol and ServerProtocol into new enum Class NetworkProtocol in new file base/NetworkProtocol.h 2025-07-31 13:41:29 +01:00
sithlord48
9673943556 refactor: OptionTypes, Remove corner related enums and uses static items for corner masks instead 2025-07-31 13:41:29 +01:00
sithlord48
7c06ae39ef refactor: AddResults => enum class ScreenAddResults 2025-07-31 13:41:29 +01:00
sithlord48
ffa5b88cdf refactor: ServerApp::EServerState => Enum class ServerApp::ServerState 2025-07-31 13:41:29 +01:00
sithlord48
8977d70dd9 refactor: IClipboard::EFormat => enum class Clipboard::Format 2025-07-31 13:41:29 +01:00
sithlord48
943141d65c chore: use Deskflow name in copy text sample, rename ClipboardTest::text285 -> longerText 2025-07-31 13:41:29 +01:00
sithlord48
49e36cfdc6 refactor: Event, make non default constructors explicit 2025-07-29 13:41:34 +01:00
sithlord48
283e0c6367 refactor: KeyMap EType => enum class KeyType 2025-07-29 13:41:34 +01:00
sithlord48
902f5823f2 refactor: KeyMap::keysToRestoreModifiers, use ranged for loops 2025-07-29 13:41:34 +01:00
sithlord48
7785c954d5 refactor: KeyMap::mapCommandKey to use ranged loop 2025-07-29 13:41:34 +01:00
sithlord48
db841f71bd refactor: PriorityQueue, Use std::ranges version of heap methods 2025-07-29 13:41:34 +01:00
sithlord48
84c2234869 refactor: ActionDialog use proper ActionDialog::itemToggled in place of lambda 2025-07-29 13:41:34 +01:00
Nick Bolton
51e467d45e feat: Enable 'MouseKeys' on screen setup and never restore old settings
Previously we were toggling the 'MouseKeys' Windows accessibility feature on and off, but this was causing many bugs; cursor show delay while Windows brings up the mouse stack(?) and often forever lost mouse cursor when toggling off the 'MouseKeys' feature. After a few days of hacking away at this, it seems safest to just leave it on.
2025-07-28 21:45:05 +01:00
Nick Bolton
e184475a24 feat: Add logging in MSWindowsScreen for setup and cursor centering 2025-07-28 21:45:05 +01:00
Nick Bolton
1fb2789cb1 fix: Prevent flicker on desk leave with 30ms delay 2025-07-28 21:45:05 +01:00
Nick Bolton
8979d7f94f feat: Cursor visibility retry mechanism
The `ShowCursor` function does not directly show/hide the cursor; it increments or decrements the internal display counter. When that counter reaches a certain positive/negative number, then the cursor is shown or hidden at a particular threshold.
2025-07-28 21:45:05 +01:00
Nick Bolton
9033198aed refactor: Change mouse keys functions names to expose actual behavior 2025-07-28 21:45:05 +01:00
Nick Bolton
db55c3f0e7 build: remove unused includes from MSWindowsDesks.cpp|h 2025-07-28 21:45:05 +01:00
sithlord48
3b27fa5771 build: windows, do not deploy software opengl library 2025-07-21 15:59:24 +01:00
sithlord48
72ddcdb7f5 build: windows do not deploy dxil.dll or dxcompiler.dll 2025-07-21 15:59:24 +01:00
sithlord48
4a7d031bc6 build: windows deploy qt plugins in plugin folder 2025-07-21 15:59:24 +01:00
sithlord48
45fcdde636 build: Windows, run deploy tool only once, use install to install qt depends
Remove unneed . in Qt deploy message
2025-07-21 15:59:24 +01:00
sithlord48
2c55f4fe06 refactor: windows write daemon log in ProgramData\Deskflow
remove old log file on update
2025-07-21 12:41:46 +01:00
sithlord48
a4c82869a6 fix: split version info in new header
a new file src/lib/VersionInfo.h.in now holds our version info vars
fixes #8657
2025-07-21 12:06:01 +01:00
sithlord48
f33848f9b8 fix: setWindowIcon explicitly, fixes #8756 2025-07-21 11:10:19 +01:00
sithlord48
e828563190 chore: MainWindow, use system correct monospace font for log 2025-07-18 10:51:50 -04:00
sithlord48
c7873f2f81 refactor: DisplayInvalidExecption pass const ref to string 2025-07-17 18:47:50 +01:00
sithlord48
9f72b44d2a refactor: ClientApp indicate msg is unused in update status 2025-07-17 18:47:50 +01:00
sithlord48
8dcd9b0c01 refactor: ArgParser::assemble command use const ref std::string_view for ingoreArg 2025-07-17 18:47:50 +01:00
sithlord48
e436b41ab0 refactor: ArgParser::parsePlatformArgs remove unused argument isServer 2025-07-17 18:47:50 +01:00
sithlord48
c2eae36650 refactor: ArgParser, simplify arg parsing by combining duplicate checks into one 2025-07-17 18:47:50 +01:00
sithlord48
1079c22736 refactor: Settings use Static methods where possible internally 2025-07-17 18:47:50 +01:00
sithlord48
d69febe2dc refactor: Unicode, declare vars on seperate line as untions, using string_view for UCS2ToUTF8 input, remove redundant parentheses 2025-07-17 18:47:50 +01:00
sithlord48
c6a97c24a2 refactor: String, use std::ranges::lexicogriphical_compare to simplify CaselessCpm::less 2025-07-17 18:47:50 +01:00
sithlord48
d9ec93e7ee refactor: String, pass stringToSizeType a const ref of the string we are to get the size of 2025-07-17 18:47:50 +01:00
sithlord48
9db11a90eb refactor: TCPSocket, new protected methods to access m_readable, m_writable and m_connected, use them in place of direct access and make the variables private
TCPSocket, remove duplicate private and protected sections in header
2025-07-17 18:47:50 +01:00
sithlord48
c327c80d63 refector: TCPListenSocket, remove duplicate public in header, make m_mutex private 2025-07-17 18:47:50 +01:00
sithlord48
0884a267d1 refactor: App move m_suspended to the subclasses where its is used 2025-07-17 18:47:50 +01:00
sithlord48
d1b810baa5 refactor: use std::size to get size of arrays 2025-07-17 18:47:50 +01:00
sithlord48
f51abad8cc feat: Wayland, only set a side to a border if if has a neighboring screen
move protocolTypes Direction enum to new base/DirectionTypes
use the direction info when calling
fixes #8572
fixes #8452
fixes #8605
fixes #8005
2025-07-14 10:31:50 +01:00
sithlord48
ae5ba4e51f chore: remove dev method PortalInputCapture::fakeEisFd 2025-07-14 10:31:50 +01:00
sithlord48
9413393057 refactor: anonymous enum in ServerConfig => ServerConfig::AddResults enum class 2025-07-11 03:06:24 -07:00
sithlord48
79b445373b refactor: FingerPrintDialog::FingerpringDialogMode now enum class 2025-07-11 03:06:24 -07:00
sithlord48
9beea1abfe refactor: anon enum in AddClientDialog to AddAction enum class 2025-07-11 03:06:24 -07:00
sithlord48
a88a67d47f refactor: ActionDialog::ActionType enum is now a struct 2025-07-11 03:06:24 -07:00
sithlord48
7fd9070a80 refactor: InputFilter::EFilterStatus => InputFilter::FilterStatus enum class 2025-07-11 03:06:24 -07:00
sithlord48
e37cea2d6b refactor: replace anon Enum in XWindowsKeyState with static vars 2025-07-11 03:06:24 -07:00
sithlord48
181d862838 refactor EiEventQueue remove anon enum for a few static members 2025-07-11 03:06:24 -07:00
sithlord48
6ca980e3e5 refactor: XSocket::EError => XSocket::SocketError enum class 2025-07-11 03:06:24 -07:00
sithlord48
94be5f7498 refactor: TCPSocket::EJobResult => enum class TCPSocket::JobResult 2025-07-11 03:06:24 -07:00
sithlord48
32e6a84a6f chore: remove unused anon enum in SecureSocket 2025-07-11 03:06:24 -07:00
sithlord48
b9964b5e90 refactor: remove anon enum in IKeyState and replace with static s_numButtons 2025-07-11 03:06:24 -07:00
sithlord48
422b4c3a23 refactor ClientArgs ClientScrollDirection to enum class use Members Normal and Inverted for names 2025-07-11 03:06:24 -07:00
sithlord48
05e32497d1 refactor: ArgsBase::Type => ArgsBase::ClassType class enum 2025-07-11 03:06:24 -07:00
sithlord48
9905f32738 refactor: Common.h replace anon enum with set constexpr exit codes 2025-07-11 03:06:24 -07:00
sithlord48
29e9b8ae3b refactor: ServerProxy::EResult => ServerProxy::ConnectionResult enum class 2025-07-11 03:06:24 -07:00
sithlord48
fe3c41f857 refactor: remove Unneed enum for LogOutputters and use a constexp instead 2025-07-11 03:06:24 -07:00
sithlord48
3ececbcfd9 refactor: Event anon enum => EventFlags struct 2025-07-11 03:06:24 -07:00
sithlord48
c12aa4c6e9 refactor: Make IEventQueueBuffer Types an enum class, use proper names rename kNone => Unknown to reflect its unknowns an unknown type of event 2025-07-11 03:06:24 -07:00
sithlord48
fc58688bb0 refactor: replace throw() with noexcept in cases where execeptions are not possible 2025-07-11 03:06:24 -07:00
sithlord48
77bdde5434 refactor: Elevel => LogLevel enum class, use proper names for items in the class 2025-07-11 03:06:24 -07:00
sithlord48
3472ff6ce5 chore: ArchNetworkBSD, use std::ignore in place of unused int 2025-07-11 03:06:24 -07:00
sithlord48
2d3105206d fix: save geometry not frameGeometry on exit
fixes #8741
2025-07-09 09:32:39 +01:00
sithlord48
c6778dc9be refactor: use more if and switch init-statements 2025-07-07 17:53:56 +01:00
sithlord48
36e985d8ab chore: add missing default for switches 2025-07-07 17:53:56 +01:00
sithlord48
865365b2fa chore: add noreturn to more methods 2025-07-07 17:53:56 +01:00
sithlord48
8a83f68ff0 chore: remove unused < operator for Timer class 2025-07-07 17:53:56 +01:00
sithlord48
245fa815d2 refactor: Server::onMouseMousePrimary, use std array for horizontal and vertical direction array 2025-07-07 17:53:56 +01:00
sithlord48
f12f312dab refactor: ProtocolTypes EDirection => enum class Direction 2025-07-07 17:53:56 +01:00
sithlord48
dded2e3711 refactor: ProtocolTypes EDirectionMask => enum class DirectionMask 2025-07-07 17:53:56 +01:00
sithlord48
d71d4eaf07 refactor: ProtocolTypes EDataTransfer => struct ProtocolTypes::ChunkType 2025-07-07 17:53:56 +01:00
sithlord48
bc9f47c957 refactor: ProtocolTypes EDataReceived => enum class ProtocolTypes::TransferState 2025-07-07 17:53:56 +01:00
sithlord48
0ea2576032 refactor: XWindowsEventQueueBuffer, use static const for timeoutd delay 2025-07-07 17:53:56 +01:00
sithlord48
0100cb796e chore: SecureSocket remove unused MAX_ERROR_SIZE define , rename MAX_INPUT_BUFFER_SIZE static to confirm to naming convention 2025-07-07 17:53:56 +01:00
sithlord48
8ec40dd74b refactor: ClipboardChunk Replace CLIPBOARD_CHUNK_META_SIZE define with constexpr 2025-07-07 17:53:56 +01:00
sithlord48
4034d15fb3 refactor: ClientApp Replace RETRY_TIME define with constexpr 2025-07-07 17:53:56 +01:00
sithlord48
1a9f8d5cdc refactor: app Replace options defines as constexpr use more sane names 2025-07-07 17:53:56 +01:00
sithlord48
66ddaca410 refactor: PriorityQueue::Swap make noexcept 2025-07-07 17:53:56 +01:00
sithlord48
2c2a5c0269 refactor: Make KeyMake::Swap noexcept 2025-07-07 17:53:56 +01:00
sithlord48
e42d3b45b6 refactor: SocketMultiplexer, do not create nested pointer in new Thread call 2025-07-07 17:53:56 +01:00
sithlord48
5aa9b1bfd4 refactor: PortalRemoteDesktop, do not create nested pointer in new Thread call 2025-07-07 17:53:56 +01:00
sithlord48
cfbfa88cdc refactor: PortalInputCapture: do not create nested pointer in new Thread call 2025-07-07 17:53:56 +01:00
sithlord48
4a92a3295b refactor: ScreenSettingsDialog, do not create nested validators in the Lines setValidator method 2025-07-07 17:53:56 +01:00
sithlord48
ede27975d7 chore: clean up remaing sonar warnings to use in class intializers where possible 2025-07-07 17:53:56 +01:00
sithlord48
a175c293f6 chore: comment empty methods that do nothing 2025-07-07 17:53:56 +01:00
Kentaro Hayashi
5976da7e5b chore: fix W:useless-whatis-entry lintian warnings
By default, help2man generates "manual page for foobar" for
manual files.

It is useless because there is no addtional information which
explains what deskflow is.

With --name option, .SH NAME section will be set correctly.

Before:

  .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
  .TH DESKFLOW-CLIENT "1" "June 2025" "deskflow-client v1.22.0.109, protocol v1.8" "User Commands"
  .SH NAME
  deskflow-client \- manual page for deskflow-client v1.22.0.109, protocol v1.8
  .SH SYNOPSIS
  .B deskflow-client
  [\fI\,OPTIONS\/\fR]
  .SH DESCRIPTION

After:

  .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
  .TH DESKFLOW-CLIENT "1" "July 2025" "deskflow-client v1.22.0.109, protocol v1.8" "User Commands"
  .SH NAME
  deskflow-client \- Keyboard and mouse sharing utility (Client)
  .SH SYNOPSIS
  .B deskflow-client
  [\fI\,OPTIONS\/\fR]
  .SH DESCRIPTION

Signed-off-by: Kentaro Hayashi <kenhys@xdump.org>
2025-07-03 13:23:15 +00:00
sithlord48
7fe50748f3 refactor: ServerApp use if in places of multi ternary ops for readablitly 2025-07-03 03:24:16 +00:00
sithlord48
0474e10b03 chore: Arch::time explictly convert to double on return 2025-07-03 03:24:16 +00:00
sithlord48
2421a8b725 refactor: Make throwError and throwNameError members of IArchNetwork
make throwError and throwNameError noreturn
          remove unused extra private section in IArchNetwork subclasses
2025-07-03 03:24:16 +00:00
sithlord48
ab4fbd1c85 refactor: use using enum EventTypes when possible to reduce verbosity 2025-07-03 03:24:16 +00:00
sithlord48
8f6f014bcd refactor: IArchNetwork turn anonymous enum into PollEventMask struct with set of static values 2025-07-03 03:24:16 +00:00
sithlord48
47d44db497 refactor: make EStreamType enum Class StreamType, and conform members to naming conventions 2025-07-03 03:24:16 +00:00
sithlord48
879283f46f refactor: Make IArchNetwork::EAddressFamily enum class IArchNetwork::AddressFamily
confirm AddressFamily items to naming convention
2025-07-03 03:24:16 +00:00
sithlord48
cbbfd495e3 refactor: make ESignal an enum Class IArchMultiThread::ThreadSignal, conform ThreadSignal items to naming conventions 2025-07-03 03:24:16 +00:00
sithlord48
1692bec7e6 ci: skip CoreProcessTest for windows arm, broken on ci 2025-07-03 02:59:51 +00:00
sithlord48
4c2b9eb9e4 chore: remove unused XScreenInputFailure 2025-06-30 20:55:06 +01:00
sithlord48
872db8910e chore: remove unused XSubscription class 2025-06-30 20:55:06 +01:00
sithlord48
e06b6b0be4 refactor: XSocket, new XSocketWithWhat subclass used to reduce duplication in XSocket subclasses that have a common with method 2025-06-30 20:55:06 +01:00
sithlord48
a04572a8c2 docs: remove sonar warning about // in comments, within ProtocolTypes.h 2025-06-30 20:55:06 +01:00
sithlord48
958e14cb13 refactor: remove XBASE related macros, fixes #8723 2025-06-30 20:55:06 +01:00
laz-001
22b1e8e543 docs: fix broken link to 'Protocol Reference'
Also fixes duplicate sidenav entries for 'Contributing'
2025-06-26 11:19:41 +01:00
sithlord48
cf9e2ecf49 refactor: simplify setting the fallback theme search path, does require sub dirs but we should only need the theme root
refactor: set the Icon theme in deskflow-gui insetead of MainWindow
2025-06-26 09:50:53 +01:00
sithlord48
cb508f5c3a chore: Remove DRAG_AND_DROP left over define 2025-06-25 16:16:13 +01:00
laz-001
26cc85e878 add protocol developer documentation 2025-06-25 15:42:16 +01:00
sithlord48
42cd01efd7 refactor: PortalInputCapture, fix a missed non compliant variable names
refactor: PortalInputCapture, more const args
2025-06-20 18:10:40 +01:00
sithlord48
a7a54ad8a7 refactor: PortalInputCapture use std::map to hold signals and enum class as the key
fixes: InputCapturePortal crash in debug builds
2025-06-20 18:10:40 +01:00
sithlord48
20bc88eb1f refactor: PortalInputCapture sonar adjustments 2025-06-20 12:41:34 +01:00
sithlord48
969b642e0b refactor: EiScreen sonar adjustments 2025-06-20 12:41:34 +01:00
sithlord48
a89f3b6892 refactor: conform EiScreen to code standards
fixes #8700
2025-06-20 12:41:34 +01:00
sithlord48
a973d4277c refactor: conform PortalInputCapture to coding standards 2025-06-20 12:41:34 +01:00
sithlord48
b8124107aa refactor: conform EiKeyState to coding standards 2025-06-20 12:41:34 +01:00
sithlord48
0691d586e7 refactor: conform EiEventQueueBuffer to coding standards 2025-06-20 12:41:34 +01:00
sithlord48
e8c85611a0 refactor: conform PortalRemoteDesktop to naming standards
remove unused method and includes
2025-06-20 12:41:34 +01:00
sithlord48
0321b2d36e chore: ArchNetworkBSD:Deps use make_shared now that we dont build on ubuntu 22 anymore 2025-06-20 09:39:26 +01:00
sithlord48
f4a49749c7 chore: remove todo in places where its done or just a note 2025-06-20 09:39:26 +01:00
sithlord48
59ed15628e refactor: remove redundant access specifiers 2025-06-20 09:39:26 +01:00
sithlord48
dddb6aadf1 refactor: Settings remove const for return by vaule 2025-06-20 09:39:26 +01:00
sithlord48
2110411c6d refactor: remove redundant cast 2025-06-20 09:39:26 +01:00
sithlord48
b29c5b1bb2 refactor: use contains to find if an item is in a container 2025-06-20 09:39:26 +01:00
sithlord48
07a217f54f refactor: concatenate Namespaces 2025-06-20 09:39:26 +01:00
sithlord48
aacf922319 refactor: remove names for unused handle function args 2025-06-20 09:39:26 +01:00
sithlord48
a80e255bb0 refactor: Add a few missing overrides
make ~XThreadExit() override
 make ~ArchString() overide
 make ~ArchNetworkBDS() overide
2025-06-20 09:39:26 +01:00
sithlord48
6299f04b59 refactor: make TlsUtility::generatateCertificate and TlsUtility::persistCertificate const 2025-06-20 09:39:26 +01:00
sithlord48
97006889bd refactor: ServerConnection::handleLogLine use referance to avoid unneeded copy 2025-06-20 09:39:26 +01:00
sithlord48
f0bb4e5cb3 refactor: make ServerApp::HandleScreenSwitch, Also does not use the Event * so removing it from the methods arguments 2025-06-20 09:39:26 +01:00
sithlord48
dcb047b6c5 refactor: make ClientApp::handleClientConnected const 2025-06-20 09:39:26 +01:00
sithlord48
551368a2d2 refactor: AboutDialog, Remove lambda for btnClose and connect directly to AboutDialog::close 2025-06-19 12:19:08 -07:00
sithlord48
4d738b4784 refactor: App use Uniqueprt for SocketMultiplexer
basedon: 8dd6bc2c55
2025-06-19 19:13:24 +01:00
sithlord48
06a616ef42 refactor: secureSocket uniqueprt for Ssl object
based on: 89d8ce20b0
2025-06-19 19:13:24 +01:00
sithlord48
90a651b409 refactor: server use std::unique_ptr for socketFactory
based on ff7f23e79d
2025-06-19 19:13:24 +01:00
sithlord48
dbc7aebfbc refactor: free SecureSocket cert after use 2025-06-19 18:56:14 +01:00
Nick Bolton
024436d82f refactor: Improve display of names on about screen with nbsp 2025-06-19 05:39:52 -07:00
sithlord48
b6bc469744 chore: adjust the about dialog default size 2025-06-19 09:54:37 +01:00
sithlord48
c4e47c0f2c chore: add main barrier/input-leap dev to our important devs list 2025-06-19 09:54:37 +01:00