Commit Graph

4430 Commits

Author SHA1 Message Date
Armin Novak 44b07721ec
[client,X11] fix ActionScript
* Unify script calls
* Update documentation
* Fix home directory
2024-07-25 09:42:03 +02:00
akallabeth 56b50966a3
[client,x11] log all XInternAtom calls 2024-07-25 07:47:40 +02:00
Armin Novak 9e71b423cd
[warnings] fix various compiler warnings 2024-07-24 11:08:20 +02:00
Ilya Matthew Kuvarzin 761c3a807b Fix: Prevent RemoteAPP window minimization on desktop switch in Gnome
- Modified xf_event_PropertyNotify in xf_event.c to check for Gnome session before minimizing the window
- Added the session check logic in a new function IsGnome placed in xf_utils
- This resolves the issue where RemoteAPP windows were unintentionally minimized when switching desktops in Gnome
- Ensured minimal impact on other window managers
2024-07-23 14:56:10 +02:00
akallabeth 1fe61c9432
Merge pull request #10391 from akallabeth/timezone_impro
Timezone improved
2024-07-19 12:45:08 +02:00
akallabeth 6c682c8418
[client,common] add option to set timezone
* /timezone now allows setting the timezone used from a windows timezone
  key name
* /list:timezones now lists all available windows timezone key names
2024-07-19 11:39:46 +02:00
akallabeth e72bec8441
[client,SDL] fix thread termination order
* Wait in SDL thread until RDP thread has terminated to avoid race
  conditions during autoreconnect
* Fix exit code mappings in case the connection was cancelled
2024-07-19 09:10:32 +02:00
akallabeth b0320d8068
[client,SDL] fix autoreconnect
retry on handle check failure, not if WaitForMultipleObjects fails
2024-07-18 15:31:24 +02:00
Armin Novak 51204c1433
[client,X11] fix X11 event mask
When reading incremental data for clipboard restore previous event mask
when finished. Fixes #10377
2024-07-17 14:19:58 +02:00
Armin Novak 2ac05d4d4a
[client,X11] X11 locking log with WITH_DEBUG_X11 2024-07-17 11:32:21 +02:00
Armin Novak 71760d6d9a
[client,X11] log XConvertSelection calls 2024-07-17 11:05:57 +02:00
Armin Novak 3f0f1a3bbb
[client,X11] fix duplicate file clipboard clear 2024-07-17 10:41:14 +02:00
Armin Novak 5ebbd39187
[client,X11] prevend duplicate formatID in formatList
When announcing client clipboard formats skip any format already in the
list.
2024-07-17 10:31:14 +02:00
Armin Novak d9d81d347c
[client,X11] fix clipboard locking 2024-07-17 09:49:54 +02:00
Ondrej Holy 17c95924d7 [client,x11] fix typo in help
There is a typo in the xfreerdp client help. It says "localtion" instead
of "location". Let's fix it.
2024-07-10 07:16:43 +02:00
Frederick Zhang c79c28348d
[client,common] update /ipv[4|6] help text 2024-07-09 22:47:11 +10:00
akallabeth 194873b78c
[client,common] fix error logging
freerdp_client_command_line_post_filter did log wrong parsing errors.
2024-07-08 14:41:06 +02:00
akallabeth 7c7217dc7c
[client,common] fix typo in command line help 2024-07-08 14:13:56 +02:00
Frederick Zhang 919a692abc
[client,common] fix /ipv4 /ipv6 without :force
As arg->Value is NULL when using /ipv4 or /ipv6 alone, it segfaulted
doing strncmp.
2024-07-05 00:04:32 +10:00
Armin Novak d3efbe004d [client,x11,sdl] fix manpage generation
* fix name of xfreerdp manpages
* fix name of sdl-freerdp manpages
2024-07-04 12:11:26 +02:00
Armin Novak 3b8a2d3568
[release] start 3.6.2-dev0 cycle 2024-07-04 10:00:24 +02:00
Armin Novak e767cf3b6c
[release] 3.6.1 2024-07-04 10:00:24 +02:00
akallabeth 2669edf623
start 3.6.1-dev0 cycle 2024-07-03 14:03:28 +02:00
akallabeth 41df7bcded
release 3.6.0 2024-07-03 14:03:28 +02:00
akallabeth fbc0d161ca
Merge pull request #10335 from akallabeth/command-line-print
[client,common] print failed command line argument
2024-07-03 13:55:36 +02:00
akallabeth fcb8f39bc5
[client,common] print failed command line argument 2024-07-03 11:22:39 +02:00
akallabeth 46bced61fb
[cmake] fix cross compilation
helper utilities are now compiled on host only
2024-07-02 13:24:38 +02:00
akallabeth 4099bd4e45
[warnings] integer casts/checks 2024-07-02 12:38:00 +02:00
akallabeth 95eefc7fb8
[client,sdl] add_scheme_handler stub for windows 2024-07-02 08:31:51 +02:00
akallabeth b00b38abc2
Merge pull request #10319 from akallabeth/safe_atom_name_log
[client,X11] log atom numbers passed to XGetAtomName
2024-06-28 11:06:17 +02:00
akallabeth 357a92ce55
[client,X11] log atom numbers passed to XGetAtomName 2024-06-28 09:21:17 +02:00
akallabeth 562fa8a03d
[core,tcp] Improve IPv4 or IPv6 connect
* Fix +ipv6 option, now fall back to IPv4 if no IPv6 entry found
* Add new option ForceIPvX to fail connect if no such entry is found
2024-06-28 09:07:33 +02:00
akallabeth 388ad6b537
[client,common] add support for /kbd:lang:de style
allows mapping of languages to keyboard layouts
2024-06-20 10:27:53 +02:00
akallabeth fc5ed616c7
[client,sdl] fix typo 2024-06-17 09:14:35 +02:00
akallabeth 711a6603f2
Merge pull request #10267 from akallabeth/sdl-fix
[client,SDL2] fix renderer height
2024-06-08 09:43:00 +02:00
akallabeth 221a442270
[client,sdl] keep hotkey state of keyboard grab
keep the keyboard grab state from:
1. +/-grab-keyboard command line as default
2. toggle this state by hotkey later on
2024-06-08 09:30:28 +02:00
akallabeth a6abca5e89
[client,SDL2] fix renderer height 2024-06-08 09:08:49 +02:00
akallabeth 04e3fe0b06
[client,sdl] update manpages
* Respect default configuration directory depending on
  WITH_FULL_CONFIG_PATH
* Unify manpage files for SDL2 and SDL3
2024-06-06 11:42:09 +02:00
akallabeth 7aa72a7507
[core,settings] unify configuration paths
* Add new function freerdp_settings_get_config_path to get current
  user configuration directory
* Add CMake option WITH_FULL_CONFIG_PATH (default OFF): If defined, use
  <appdata>/Vendor/Product as config directory, otherwise use
  <appdata>/vendor (lowercase, only if vendor equal to product)
2024-06-06 11:31:22 +02:00
akallabeth ad83ba2088
[client,sdl3] fix typo in variable 2024-06-06 11:31:12 +02:00
Armin Novak cedc631b3e
[client,SDL] add windows WebView2 link
Add a CMake script to download and link WebView2 for SDL client
2024-06-05 13:52:10 +02:00
akallabeth 42f1da7132
[client,SDL] add webkit2gtk4.1 support 2024-06-04 12:55:34 +02:00
akallabeth e569119fa2
Merge pull request #10227 from mjt0k/sdl-kbd-config-once
SDL2: sdl_kbd: parse keyboard config once instead of at each keypress
2024-06-03 11:38:16 +02:00
akallabeth cdc8d62108
[client,sdl] move parsing of hotkeys to constructor
* implement that for SDL3 just like for SDL2
* rename members to conform to style of file
2024-06-03 11:05:07 +02:00
akallabeth ee789dee0b
[client,x11] fix floatbar hide 2024-06-03 10:52:38 +02:00
Michael Tokarev f8cb7d86f6 SDL2: sdl_kbd: parse keyboard config once instead of at each keypress
Currently, sdl-freerdp.json file is parsed at every keypress, which
is just wrong.  Instead, parse it at startup and remember the key
configuration for the whole session.

The same should be done for SDL3 I guess.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-05-30 11:53:48 +03:00
akallabeth 3261598d42
[client,sdl] guard USE_COMPILED_RESOURCES
functions only required with USE_COMPILED_RESOURCES should not be
compiled if the option is not set.
2024-05-25 09:17:20 +02:00
akallabeth d4fc2cdd2f
[client,cmdline] fix inverted frame-ack option 2024-05-24 18:18:19 +02:00
akallabeth 4d79cf2848
[client,common] add command line gfx frame-ack option
expose the option to turn on or off the GFX frame ACK sending.
2024-05-24 11:52:04 +02:00
akallabeth 06598da910
[client,sdl] fix resourcemanager
due to moving to a static class the C++ initializer did no longer work.
add explicit calls for initializers to ensure the generated classes are
referenced.
2024-05-24 09:46:07 +02:00
akallabeth 2efcf1c436
[client,sdl] Use SDL_CreateWindowAndRenderer
Recommendated in https://github.com/libsdl-org/SDL/issues/9076
2024-05-24 08:59:10 +02:00
Armin Novak 41841997cc
[client,cliprdr] send format list msgFlags = 0
only a response message might have msgFlags != 0 set
2024-05-22 16:31:34 +02:00
akallabeth 17bc7b7613
[client,common] add nodelay to dump options
add a new flag nodelay to /dump option to replay dumps as fast as
possible
2024-05-17 10:36:30 +02:00
akallabeth e72f634fba
[client,sdl] automatically use detected SDL
* Automatically enable detected SDL version
* Abort if no SDL version is detected
2024-05-16 23:07:07 +02:00
akallabeth ff772084e6
[client,sdl] add assignmen and move operator delete 2024-05-16 20:50:07 +02:00
akallabeth cc038ad89b
[client,sdl] merge SDL2 and SDL3 projects 2024-05-16 20:34:11 +02:00
akallabeth 35859c81a1
[client,sdl] allow side by side and replacement
Allow SDL2 and SDL3 client to be installed side by side as well as an
option to only install one and name it accordingly
2024-05-16 18:27:44 +02:00
akallabeth 4c4e185b66
[client,sdl] add clipboard support 2024-05-16 18:27:32 +02:00
akallabeth 4a2ebe263b
[client,sdl] update to SDL3
update client for SDL3. Not compatible with SDL2
2024-05-16 18:27:26 +02:00
akallabeth 8281186a6d
[client,sdl] create a copy for SDL3
* Copy SDL2 client to SDL3 as the new version is not API compatible
* Move existing SDL2 client to SDL2 directory
* Move fonts from SDL client to resources folder in top level directory
2024-05-16 18:27:11 +02:00
Ondrej Holy 3f97fb59ad
[client,sdl] add test case for SDL prefs
Let's add test case for SDL prefs functionality. This is to test the
JSON wrapper to ensure it doesn't break something.
2024-05-16 16:51:44 +02:00
akallabeth 632f500f3e
[client,sdl] refactor SdlPref
* Wrap in class
* Allow overriding default configuration file for tests
2024-05-16 15:37:22 +02:00
Ondrej Holy 945c496812
[client,sdl] use WITH_WINPR_JSON instead of WINPR_JSON_FOUND
The WINPR_JSON_FOUND macro is never defined currently. Consequently,
the SDL prefs always use the fallback implementation. Let's use the
WITH_WINPR_JSON instead to really parse the sdl-freerdp.json file.
2024-05-16 11:56:17 +02:00
Ondrej Holy e197d27c8d
[client,sdl] move prefs to static lib
This is in preparation for the subsequent commit adding test case for
the prefs functionality to avoid building the code twice.
2024-05-16 11:56:13 +02:00
Ondrej Holy 702acc93c6
[client,sdl] remove duplicated include statement 2024-05-16 11:55:58 +02:00
akallabeth aaded541d9
[core,client] replace cJSON with WinPR wrapper
use the new WinPR JSON wrapper API
2024-05-14 20:45:31 +02:00
akallabeth 1efefceb5c
[core,settings] refactor /network
* add CONNECTION_TYPE_INVALID
* default to CONNECTION_TYPE_AUTODETECT
* allow /network:invalid and /network:0 to disable
2024-05-14 11:18:29 +02:00
akallabeth a1d8754f1f
[core,autodetect] abort on unexpected message. 2024-05-14 11:07:50 +02:00
Armin Novak e272eb3966 [warnings] fix Wshadow warnings 2024-05-08 15:30:01 +02:00
Armin Novak d8cabe84ce [client,X11] check PubSub for NULL 2024-05-08 10:08:08 +02:00
Richard Markiewicz 61d3f1f201 [client,mac] Enable secure restorable state 2024-05-04 11:50:54 +02:00
toreonify 9118551334 Renamed Atom identifiers, reserved names were used 2024-05-04 11:32:39 +02:00
toreonify 6ea047558e Custom context/popup menus stay on screen
Fix maximized/restored window state
Add support for window allowed actions
2024-05-04 11:32:39 +02:00
Armin Novak c172713c41 [client,sdl] handle dialog on key up event
Handle keyboard input dialog status change on key up event. If handled
on key down event the dialog closes and the key up event is handled on
the next SDL event queue (usually connection dialog cancel)
Fixes #10133
2024-04-24 10:35:22 +02:00
akallabeth 1687a6424a start-3.5.2-dev0 2024-04-22 11:18:39 +02:00
akallabeth eda5c99686 release-3.5.1 2024-04-22 11:18:39 +02:00
akallabeth 3cf4bac0e8 [client,sdl] implement key remapping 2024-04-19 12:59:01 +02:00
akallabeth 71e78bedd7 [warnings] fixed sign and const
* fix various char/BYTE sign warnings
* fix various const warnings
* fix format string size_t
* remove unused CMake variables
2024-04-18 11:05:58 +02:00
Armin Novak 390762bff9 [client,sdl] initialize member 2024-04-17 18:47:16 +02:00
akallabeth fdc253e909 start 3.5.1-dev0 cycle 2024-04-16 21:20:04 +02:00
akallabeth cab5adde26 release-3.5.0 2024-04-16 21:20:04 +02:00
akallabeth 0a0df77c39 [build,ipp] drop support for IPP
Intel Performance Primitives do not have a test setup in FreeRDP and
most likely no longer compile.
2024-04-16 12:44:38 +02:00
Armin Novak 2500fb7bfb [cleanup] refactor some checks 2024-04-15 12:40:01 +02:00
Armin Novak 587175fdb8 [coverity] 1543090 Division or modulo by float zero 2024-04-15 12:40:01 +02:00
Armin Novak c3939a750c [coverity] 1543120 Check of thread-shared field evades lock acquisition 2024-04-15 12:40:01 +02:00
Armin Novak 30f489c2a0 [cliprdr,common] fix file_context->request_table 2024-04-15 12:40:01 +02:00
Armin Novak 8633a437e0 [coverity] 1543094 Use of auto that causes a copy 2024-04-15 11:30:31 +02:00
Armin Novak a77a0c45d7 [coverity] 1543261 Not restoring ostream format 2024-04-15 11:30:31 +02:00
Armin Novak b197ae8a05 [coverity] 1543280 Data race condition 2024-04-15 11:30:31 +02:00
Armin Novak 405a24c200 [coverity] 1543179 Array compared against 0 2024-04-15 11:30:31 +02:00
akallabeth 8267a4c3d6 [client,common] fix missing function return 2024-04-12 12:41:42 +02:00
akallabeth 1232cdbc6a [coverity] 1543092 Dereference before null check 2024-04-12 12:41:42 +02:00
akallabeth 158d26aa91 [coverity] 1543224 Dereference after null check 2024-04-12 12:41:42 +02:00
akallabeth 2477b37128 [warnings,types] fix BOOL assingments 2024-04-12 09:45:09 +02:00
akallabeth 793145b8c5 [coverity] 1543198 Explicit null dereferenced 2024-04-12 09:45:09 +02:00
akallabeth af1c890295 [coverity] 1543263 Missing unlock 2024-04-12 09:45:09 +02:00
akallabeth dab58421f1 [coverity] 1543191 Resource leak 2024-04-12 09:45:09 +02:00
akallabeth f49d753b7f [coverity] 1543200 Resource leak 2024-04-12 09:45:09 +02:00
akallabeth fbc5dfffac [coverity] 1543183 Resource leak 2024-04-11 12:04:07 +02:00
akallabeth 88bea503fc [coverity] 1543087 Resource leak 2024-04-11 12:04:07 +02:00
akallabeth 80c562d040 [coverity] 1543235 Out-of-bounds access 2024-04-11 12:04:07 +02:00
akallabeth 61e0d122b7 [coverity] 1543235 Out-of-bounds access 2024-04-11 12:04:07 +02:00
akallabeth 4b1bdc622a [x11,client] always use current clipboard owner 2024-04-07 08:59:51 +02:00
akallabeth 7efd75cb01 [client,wlfreerdp] use wm-class for app_id 2024-04-06 09:17:17 +02:00
Martin Fleisz f62a61886f common: Parse actual value of redirectlocation rdp file setting 2024-04-04 21:20:39 +02:00
akallabeth 1956fffd3d [build,mingw] fix build issues found 2024-04-03 11:53:58 +02:00
Armin Novak ff92ef4331 [client,windows] clean up clipboard 2024-04-03 10:45:12 +02:00
Ilya Shipitsin be50010d1d client/Windows/wf_cliprdr.c: handle malloc error 2024-04-03 10:45:12 +02:00
akallabeth 735cb1ec14 [cmake] fix mingw linking 2024-04-03 09:42:44 +02:00
Mathias Lithen 532a3cd1a9 Set res_class on classHints 2024-04-01 09:30:30 +02:00
sasha0552 d864393a8a [client,X11] fix detection of need to use relative movements
Register XI raw masks when MouseUseRelativeMove enabled
Fix duplication of sent events (in previous implementation relative and absolute events were sent at the same time)
Slightly refactor code
2024-03-26 09:20:50 +01:00
akallabeth 8bd1e72dd4 [client,common] guard ainput access with correct guard 2024-03-26 09:20:35 +01:00
sasha0552 c6dd5e45e0 [client,common] fix TS_RELPOINTER_EVENT sending logic
Send relative mouse events using TS_RELPOINTER_EVENT only when capability present
2024-03-22 20:15:24 +01:00
akallabeth 1b2f95dfde [client,common] allow deactivating RAILS hidef mode 2024-03-21 14:26:14 +01:00
akallabeth 678ff144ab [cmake] unify windows resource file generation
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
2024-03-20 11:17:18 +01:00
akallabeth 622c688d56 [client,common] adjust command line tests
invalid drive redirection paths are now ignored and no longer create an
error but just a warning message
2024-03-18 13:28:03 +01:00
akallabeth 925b23bef5 [client,common] skip invalid drives to redirect
Fixes #9989: ignore invalid drive (=path) redirections from
configuration, but notify the user with a warning message.
2024-03-18 13:28:03 +01:00
akallabeth c22d9844a4 [client,common] fix incompatible-pointer-types
use a union to cast to expected types.
2024-03-18 13:27:32 +01:00
akallabeth 8df13033d5 start 3.4.1-dev0 cycle 2024-03-14 11:28:33 +01:00
akallabeth 708f376489 release-3.4.0 2024-03-14 11:28:33 +01:00
akallabeth c591c2cd26 [pkg-config] add private optional link libraries 2024-03-14 10:35:03 +01:00
Kai Pastor d6fcacd47a Add find_dependency for link lib targets 2024-03-14 10:13:14 +01:00
Armin Novak 56a3955af4 [client,x11] send TS_RAIL_ORDER_ACTIVATE
when a rail window has gained focus or lost it send
TS_RAIL_ORDER_ACTIVATE to inform the server about the change.
2024-03-14 10:11:47 +01:00
akallabeth 6b5f262660 [client,x11] document keyboard shortcuts 2024-03-12 10:13:25 +01:00
akallabeth c87368310a [client,x11] fix right control ungrab
ungrab keybaord/mouse on first right control press. Fixes #9959
2024-03-12 10:13:25 +01:00
akallabeth f764b0a854 [channels,location] implement client channel
* provide client side callbacks to implement platform specific location
  backend glue code
2024-03-11 13:22:12 +01:00
akallabeth 1f22a4f954 [client,sdl] ignore blit that does not intersect
SdlWindow::blit might be called for areas that do not intersect the
surface. Return success in such cases to avoid terminating a session.
2024-03-11 12:32:35 +01:00
akallabeth e53dc3dabb [client,x11] fix X11 access during +auth-only
fixes #9946
2024-03-08 11:13:05 +01:00
David Fort aebe9742e0 [client,win32] Child session fixes
It seems like WaitFor[Single|Multiple]Object calls aren't reliable on pipes, especially
on the pipe opened for childSession access. The object can be marked as signaled even if
no data is available, making the connection laggy and unresponsive (nearly unusable in some
cases).
This patch works around that by using ReadFileEx() with overlapped instead of simple
ReadFile() and use asynchronous reads.
2024-03-01 09:46:53 +01:00
akallabeth 9a7d30d174 [clang,tidy] fix a few warnings 2024-02-27 14:15:43 +01:00
akallabeth 43a70ccb90 [client,sdl] use std::filesystem u8string() 2024-02-27 14:10:14 +01:00
akallabeth f10e8e9fa1 [client,common] fix help printing
do not drop characters on linebreaks.
fixes #9899
2024-02-26 10:26:58 +01:00
akallabeth f84108010b [client,sdl] use uint32_t instead of SDL_Keymod
the SDL_Keymod enum is not suitable to hold a mask of SDL_Keymod values
2024-02-23 10:02:08 +01:00
akallabeth 517cd69107 [client,sdl] remove not existing docbooc xml 2024-02-23 10:02:08 +01:00
akallabeth f5704e025f start development cycle 3.3.1-dev0 2024-02-22 15:18:30 +01:00
akallabeth a1d8b55048 update release to 3.3.0 2024-02-22 15:18:30 +01:00
akallabeth a2b220f828 [client,sdl] fix smartcard pin dialog result 2024-02-22 13:13:49 +01:00
akallabeth 5d3ffea061 [client,sdl] unify window related operations
Access window related operations only in SdlWindow class
2024-02-22 13:13:49 +01:00
akallabeth 867e663872 [client,sdl] add windowevent-id to string 2024-02-22 13:13:49 +01:00
akallabeth 8492738b0d [client,sdl] tidy up code 2024-02-22 13:13:49 +01:00
akallabeth acedd305d3 fixed unused-but-set-variable warnings 2024-02-22 12:31:50 +01:00
akallabeth 05e555feb7 fixed unused-variable warnings 2024-02-22 12:31:50 +01:00
akallabeth 43eae6029f [clang-tidy] fix various review warnings 2024-02-22 12:31:50 +01:00
akallabeth d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
Armin Novak 62f974a5c2 [client,sdl] add shortcut config file
Allow keyboard shortcuts to be configured via config file.
2024-02-22 12:24:51 +01:00
Armin Novak 0d30b22a3e [client,wayland] add alternate bitmap mime types
add alternate bitmap mime types to clipboard
2024-02-22 09:33:59 +01:00
Armin Novak ab3f44921c [client,x11] add alternate bitmap mime types
announce alternate mime types to clipboard
2024-02-22 09:33:59 +01:00
MatteoBax 29b38506b9 Fix undeclared identifier ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED 2024-02-21 08:48:55 +01:00
akallabeth 75b1ce8ef6 [client,sdl] relax CriticalSection locking
When disconnecting the SDL client it is sufficient to no longer process
SDL events. Locking the CriticalSection during disconnect might lead to
a deadlock.
2024-02-20 16:31:50 +01:00
akallabeth f3c0d22005 [client,sdl] thread safe RDP disconnect
When the RDP session is terminated ensure that no more SDL events are
processed as they might try to access RDP context data.
2024-02-20 09:25:33 +01:00