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
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
3cf4bac0e8
[client,sdl] implement key remapping
2024-04-19 12:59:01 +02:00
Armin Novak
390762bff9
[client,sdl] initialize member
2024-04-17 18:47:16 +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
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
akallabeth
793145b8c5
[coverity] 1543198 Explicit null dereferenced
2024-04-12 09:45:09 +02: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
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
43a70ccb90
[client,sdl] use std::filesystem u8string()
2024-02-27 14:10:14 +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
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
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
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
akallabeth
fd49e00f9c
[warning] use nullptr for C++ code
2024-02-15 11:49:16 +01:00
akallabeth
0e44b2c674
[clang-tidy] clang-analyzer-unix.Malloc
2024-02-15 11:49:16 +01:00
akallabeth
0ba995655d
[clang-tidy] cppcoreguidelines-init-variables
2024-02-15 11:49:16 +01:00
akallabeth
207def5c56
[clang-tidy] readability-isolate-declaration
2024-02-15 11:49:16 +01:00
akallabeth
e2e6d09256
[cmake] use DEFAULT_DEBUG_OPTION for all
2024-02-13 17:06:00 +01:00
akallabeth
b193f9ab59
[cmake] guard cmake_policy(CMP0091)
...
only set the policy to NEW if it is defined
2024-02-13 16:22:37 +01:00
Armin Novak
cc558bd4c5
[client,sdl] add missing include
2024-02-10 06:57:34 +01:00
akallabeth
8b04ab53eb
[cmake] disable WITH_WEBVIEW if not build on linux/bsd
2024-01-29 10:01:23 +01:00
akallabeth
465745131e
[client,sdl] fix verbose logging
...
only call SDL_DestroyTexture if texture != NULL
2024-01-22 13:09:25 +01:00
Armin Novak
a45e464d6f
[client,SDL] check for timer initialized
...
before manipulating SDL timers check if the SDL subsystem was actually
initialized. Fixes #9736
2024-01-10 19:53:05 +01:00
akallabeth
2b39afcc7a
[client,SDL] optimize map lookup
2024-01-05 09:18:07 +01:00
Armin Novak
a7decba8c2
[cmake] unify common options
2023-12-22 16:21:30 +01:00
Armin Novak
7debd0f621
[cmake] set policy 0091
...
On windows we need to set the runtime linker settings extra
https://cmake.org/cmake/help/latest/policy/CMP0091.html
2023-12-22 15:37:56 +01:00
Armin Novak
19d3c27e3d
[cmake] link SDL only static if explicitly requested
2023-12-22 15:37:56 +01:00
Armin Novak
11d84f067d
[client,sdl] fix full static linking
2023-12-22 15:37:56 +01:00
Armin Novak
175a3ca09a
[cmake] do not append EXECUTABLE_SUFFIX to OUTPUT_NAME
2023-12-22 15:37:56 +01:00
Armin Novak
7d641a67b9
[doc,manpage] name manpages versioned
...
if WITH_BINARY_VERSIONING is activated also version the manpages to
match the binary names
2023-12-22 10:24:09 +01:00
Armin Novak
2b654a8226
[client,sdl] use versioned resource location
...
if WITH_BINARY_VERSIONING is ON also use versioned resource locations.
2023-12-22 10:24:09 +01:00
Armin Novak
b04271ae2d
[cmake] add executable versioning
...
optionally append API version to generated binaries
2023-12-21 18:56:51 +01:00
Armin Novak
7f25a7cebf
[cmake] provide default project version
...
each subproject inherits the project version of the top level project
2023-12-21 18:56:51 +01:00
Armin Novak
3e53b3ecce
[client,sdl] work around c++ static initialization
...
wrap the factory map in a function to ensure it is initialized first.
2023-12-21 16:34:04 +01:00
Armin Novak
8fa938f629
[client,sdl] make dialog image support optional
2023-12-21 16:34:04 +01:00
Armin Novak
fcdb1a6fd4
[client,sdl] dialogs respect UseCommonStdioCallbacks
...
If FreeRDP_UseCommonStdioCallbacks is set do not show connection/error
dialogs but only print to console
2023-12-21 12:26:24 +01:00
Armin Novak
ad0de52ab6
[client,sdl] show error dialog on session quit
...
if a session is terminated in an unusual way (e.g. not user action) show
an error dialog.
2023-12-21 07:11:12 +01:00
Armin Novak
c395094f73
[client,sdl] fix connection dialog reset
...
only clean up on sdl thread quit to show error dialogs after the RDP
connection already terminated.
2023-12-21 07:11:12 +01:00
Armin Novak
46179077b9
[client,sdl] reset connection dialog on sdl quit
2023-12-20 23:16:10 +01:00
Armin Novak
c269086765
[client,sdl] show a logo on connection dialog
...
* Show a icon to indicate the type of message
* Show the FreeRDP logo below the icon
2023-12-20 23:16:10 +01:00
Armin Novak
23f8fd2fee
[client,sdl] lock connection dialog access
...
might happen from different threads.
2023-12-20 23:16:10 +01:00
Armin Novak
3bdaca81d0
[client,sdl] fix c++ static initialization order
2023-12-20 23:16:10 +01:00
Armin Novak
3095814184
[client,sdl] add pre std::filesystem compatibility
2023-12-20 23:16:10 +01:00
Armin Novak
187f562098
[client,sdl] generate binary resources during build
2023-12-20 23:16:10 +01:00
Armin Novak
41665700bb
[client,sdl] added resource manager
2023-12-20 23:16:10 +01:00
Armin Novak
c952fae5b1
[client,sdl] add icon to connect dialog
2023-12-20 23:16:10 +01:00
Armin Novak
35d584287d
[client,sdl] improve file to array helper
2023-12-20 23:16:10 +01:00
Armin Novak
dd7115889d
[client,sdl] improve connection dialog
2023-12-20 23:16:10 +01:00
Armin Novak
765129aacf
[client,sdl] improve dialog test drawing
2023-12-20 23:16:10 +01:00
Armin Novak
5e6ca89ded
[client,sdl] add SDL quit event wrapper
2023-12-20 23:16:10 +01:00
Armin Novak
a8eaf2a38d
[client,sdl] improve dialog button highlighting
...
move state to buttons or button list
2023-12-20 23:16:10 +01:00
Armin Novak
e6384c06c2
[client,sdl] fix smartcard chooser dialog
2023-12-20 23:16:10 +01:00
Armin Novak
b89f025c5b
[client,sdl] hide connection dialog
...
if another dialog is shown hide the connection dialog.
2023-12-20 23:16:10 +01:00
Armin Novak
caac867c79
[client,sdl] fix ubuntu 20.04 compatibility
2023-12-20 23:16:10 +01:00
Armin Novak
e1de32f9ab
[client,sdl] add connection dialog
2023-12-20 23:16:10 +01:00
Armin Novak
6e718f7958
[client,sdl] add signal termination handler
2023-12-20 23:16:10 +01:00
Armin Novak
7ba84737ba
[client,sdl] wrap sdl windows in c++ class
...
use RAII for SDL window creation/destruction by wrapping it in
SdlWindow constructor/destructor
2023-12-20 11:24:31 +01:00
Armin Novak
65da185275
[client,sdl] respect -decorations
...
Disable window borders if requested, fixes #9673
2023-12-20 09:27:39 +01:00
Armin Novak
c064d54cb1
[client,sdl] add manpage
2023-12-20 09:21:31 +01:00
Armin Novak
8df97272b7
[client,sdl] correctly handle AuthenticateEx
2023-12-20 09:07:35 +01:00
Nicolas Höft
396e13a928
[client,sdl] Do not disable compositing on Linux
...
This can be overridden by setting the environment variable
SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR=1
2023-12-16 20:57:53 +01:00
Armin Novak
ed4c1e1685
[client,sdl] unify dialog result wait
2023-12-15 09:11:33 +01:00
Armin Novak
f4bc5e69c2
[client,sdl] handle smartcard logon dialog error
2023-12-15 09:11:33 +01:00
Armin Novak
749da7eefc
[client,sdl] add smartcard chooser dialog
2023-12-15 09:11:33 +01:00
st0ne77
8dc01cebb0
[client,sdl] propagate error from auth dialog
2023-12-15 09:11:33 +01:00
Armin Novak
67f4dcabdc
[git] remove build artifact
2023-12-12 19:36:54 +01:00
Armin Novak
d89ef74163
[client,sdl] use SDL timer for display resize
...
* use SDL timer instead of freerdp implementation
* Disable timer after all events have been processed
2023-12-11 11:59:45 +01:00
Armin Novak
f4fcf3f96f
[client,sdl] fix crash #9627
...
lock SDL context while recreating window structures.
2023-12-11 11:59:45 +01:00
Armin Novak
6f6c0248f0
[client,common] check for relative mouse events
...
Added freerdp_client_use_relative_mouse_events to tell the client if the
coordinates should be relative or absolute
2023-12-06 10:45:01 +01:00
akallabeth
615fcc4370
[cmake] prevent in source builds
2023-11-28 12:14:55 +01:00
akallabeth
4e438d1c3e
[client] make settings opaque
2023-11-24 14:54:56 +01:00
Armin Novak
e0e72f9c28
[cmake] use CMAKE_MSVC_RUNTIME_LIBRARY
...
* Increase required CMake version to 3.15 (windows only)
* Use
https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html#prop_tgt:MSVC_RUNTIME_LIBRARY
to select windows runtime
2023-11-16 10:40:04 +01:00
Armin Novak
70a360bf38
[client,sdl] clear screen on resize
...
* clear screen on window resize
* redraw window on window resize
2023-11-06 08:48:49 +01:00
Armin Novak
1bb09089a7
[client,sdl] ignore LOGON_MSG_SESSION_CONTINUE
...
do not display a popup for this kind of message.
2023-11-03 08:25:02 +01:00
Max Roncace
eefe052690
[client,sdl] Fix primary monitor logic in multimon
2023-10-13 16:06:18 +02:00
Max Roncace
7e50a92eb9
[client,sdl] Fix stored window offset for multimon
...
SDL_WINDOWPOS_CENTERED_DISPLAY returns a magic value which causes issues
when it's eventually passed to SDL_BlitSurface.
Fixes #9441
2023-10-13 16:05:39 +02:00
akallabeth
927b553ad7
[client,sdl] send relative mouse button events
2023-10-13 16:05:27 +02:00
akallabeth
c7b123076a
[client,sdl] keep SDL_RWops open
...
the application crashes if we close the SDL_RWops after opening the
font. keep it open until the widget is destroyed
2023-10-10 22:59:53 +02:00
akallabeth
33c1183fe1
[client,sdl] fixed tests and detection
...
* add a pkg-config fallback for SDL2_ttf, current ubuntu does not ship
the cmake config
* deactivated SDL dialog test cases, now compiles properly
2023-10-10 22:59:53 +02:00
akallabeth
0529658e75
[cmake] cleaned out unused cmake files
2023-10-10 22:59:53 +02:00
Armin Novak
7a4e989dcb
[client,sdl] fix #9442 : handle alt+tab fullscreen
2023-10-10 12:33:29 +02:00
akallabeth
54a5512939
[client,sdl] fix RWops leak
2023-09-14 15:59:57 +02:00
akallabeth
285add3a85
[client,sdl] use SDL_WaitEventTimeout
...
polling is expensive, so use a waitable function instead
2023-08-31 11:39:22 +02:00
akallabeth
60dd48e698
[api] fix integer overflow warnings
2023-08-25 14:36:05 +02:00
akallabeth
bb5345c60e
[freerdp,api] add FREERDP_ENTRY_POINT
...
C requires prototypes or compilers will complain about them missing. Our
library entry points do not have such, therefore add the macro
FREERDP_ENTRY_POINT which declares the function prototype automatically
before the function.
2023-08-25 14:36:05 +02:00
akallabeth
ad11ef916c
[client,sdl] fix compiler warnings
2023-08-25 12:56:36 +02:00
Kimon Hoffmann
8ec4d20616
[cmake] Locate PkgConfig module with find_package() instead of include(FindPkgConfig)
...
This is the contemporary way of including find modules and including the
find module this way avoids cmake errors in conjunction with
find_package_handle_standard_args().
Signed-off-by: Kimon Hoffmann <Kimon.Hoffmann@lawo.com>
2023-08-21 12:43:56 +02:00
Armin Novak
fafc2e61f9
[client,sdl] redirect sdl log to wlog
2023-08-04 12:59:11 +02:00
akallabeth
8470b6ea26
[cmake] set default build type
...
set with CACHE STRING FORCE to properly be picked up by configuration
tools
2023-08-04 12:59:11 +02:00
akallabeth
0e458c8c2c
[cmake] WITH_WEBVIEW new defaults
...
* Enable by default now
* Use a config file to detect if it is enabled
2023-08-04 12:59:11 +02:00
Armin Novak
7ad32b3e2a
[client,sdl] clean up code
...
use local variable for often used accessor
2023-07-31 13:41:26 +02:00
Armin Novak
ff26ca1e39
[client,sdl] use member instead of static variable
2023-07-31 13:41:26 +02:00
Armin Novak
b3fdebfdf7
[client,sdl] position windows centered on monitor
2023-07-31 13:41:26 +02:00
Armin Novak
eca4017c8b
[client,sdl] enable multimon support for display channel
2023-07-31 13:41:26 +02:00
Armin Novak
aa2c48840a
[client,sdl] fix high dpi detection
...
* convert dpi value to percentage used by RDP
* fix detection of current monitor resolution for SDL windows
2023-07-31 13:41:26 +02:00
Dan Holliday
1d64c8d93c
Started to add support for multi-monitor.
2023-07-31 13:41:26 +02:00
Dan Holliday
75bc1505ab
Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session.
2023-07-31 13:41:26 +02:00
Dan Holliday
7234b0a2f1
Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session.
2023-07-31 13:41:26 +02:00
Dan Holliday
8c584c29dd
Started to add support for multi-monitor.
2023-07-31 13:41:26 +02:00
Dan Holliday
4eee7a54ad
Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session.
2023-07-31 13:41:26 +02:00
Armin Novak
3df928a8d2
[client,sdl] fixed member initialization order and casts
2023-07-28 13:42:12 +02:00
Armin Novak
e61880d077
[standard] replace __FUNCTION__ with __func__
2023-07-27 20:02:43 +02:00
Armin Novak
9ea1ab285b
[client,sdl] set gui consent message
2023-07-26 20:50:21 +02:00
Armin Novak
4f0ca73be6
[cmake] set MSVC runtime for SDL client
2023-07-26 16:19:07 +02:00
Armin Novak
0cd774d2c0
[client,sdl] fix cleanup order
...
destroy SDL_Renderer before SDL_Window
2023-07-25 09:11:11 +02:00
Armin Novak
4816a7d2a5
[cmake] require freetype for sdl2ttf
2023-07-24 10:49:38 +02:00
Armin Novak
315acc6aa9
[client,sdl] fix std::vector initialization
...
MSVC 2013 does not like too large vector initialization, work around
with https://stackoverflow.com/questions/31028941/how-to-avoid-compiler-limit-compiler-stack-overflow-with-large-vector-inits/31029335#31029335
2023-07-24 10:49:38 +02:00
Armin Novak
f00e73cec4
[client,sdl] fix constructor, initialize pointers
...
some initialization might fail, so initialize them beforehand.
2023-07-24 10:49:38 +02:00
akallabeth
80091cba6a
[client,sdl] add MSVC macro for missing noexcept
2023-07-21 14:53:19 +02:00
akallabeth
33d8e8e41b
[client,sdl] replace memset with c++ string iteration
2023-07-21 14:53:19 +02:00
akallabeth
9eb80ffb19
[client,sdl] add dialog paste support
2023-07-21 14:53:19 +02:00
akallabeth
6be08815e5
[client,sdl] add OpenSans license and ttf font
2023-07-21 09:50:02 +02:00
Armin Novak
b28521d2d9
[client,sdl] use TTF_OpenFontRW
...
In combination with SDL_RWFromConstMem the font can be embedded without
using an intermediate file to load it from.
2023-07-21 09:50:02 +02:00
akallabeth
b259545bbb
[client,sdl] update AAD/AVC callback handling
2023-07-21 09:14:54 +02:00
Armin Novak
1b79b60634
added webview scheme handler
2023-07-21 09:14:54 +02:00
akallabeth
8b0f4ca106
[client,sdl] move webview to static lib
...
* move to static lib aad-view
* add support for https://github.com/webview/webview (e.g. use native
webview if available)
2023-07-21 09:14:54 +02:00
Armin Novak
06fd58264e
[client,sdl] add a simple test for dialogs
2023-07-20 14:25:08 +02:00
Armin Novak
1a62103a08
[client,sdl] add support for win32 executables
...
Allow building with support for console or WinMain applications
2023-07-20 14:25:08 +02:00
akallabeth
97415f0d52
[client,sdl] add user dialogs
2023-07-20 14:25:08 +02:00
akallabeth
734117351d
[aad,avc] unify callbacks to GetAccessToken
...
The AAD and AVD authentication mechanisms both need an OAuth2 token.
They only differ in the provided arguments, so unify the callbacks into
a single one with variable argument lists.
2023-07-20 14:20:28 +02:00
fifthdegree
d309fcd6e8
Restructure Azure AD related stuff
...
- Move responsibility for obtaining access tokens to clients
- Add function for getting access tokens for AVD
- Get correct server hostname during AVD setup
- Add utility function for doing http requests
2023-07-20 14:20:28 +02:00
Martin Fleisz
622a2a8df0
misc: More int to BOOL conversion fixes
...
This is a follow up to #9129 .
This PR fixes some problematic `int` to `BOOL` conversions that might
cause overflows when checking for bit flags.
2023-07-04 09:45:20 +02:00
fifthdegree
5dd1363b8e
Fix format issue in building url for sdl webview
2023-06-19 08:42:33 +02:00
Dan Holliday
f2ae9c00be
Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session.
2023-06-14 08:49:21 +02:00
Dan Holliday
72b614262f
Fixed some incorrect key mappings with. I found that the "+/=" key on a UK keyboard didn't do anything. I also found that the "+" key on the keypad acted as if it was the "+/=" key. I've corrected some of the keycodes and confirmed that they keyboard functions as expected.
2023-06-14 08:49:21 +02:00
Armin Novak
a0fd9cf957
[client,sdl] encapsulate c++ context
...
to properly initialize c++ us a heap allocated wrapper class
2023-06-05 14:15:03 +02:00
Armin Novak
da7c3b688f
[client,sdl] use unique_ptr for SDL_Surface et al
2023-05-31 11:29:21 +02:00
Armin Novak
68995ddffb
[client,sdl] wrap WinPR event in class
2023-05-31 11:29:21 +02:00
Armin Novak
ccbcc4cb65
[client,sdl] wrap critical section in class
2023-05-31 11:29:21 +02:00
Armin Novak
63ed6dc771
[client,sdl] use std::thread
2023-05-31 11:29:21 +02:00
Armin Novak
16cbe8882d
[client,sdl] unique_ptr for input
2023-05-31 11:29:21 +02:00
Armin Novak
1a74d832de
[client,sdl] unique_ptr for display channel
2023-05-31 11:29:21 +02:00
Armin Novak
324e8c7813
[client,sdl] use SDL_WaitEvent
2023-05-31 11:29:21 +02:00
Armin Novak
481ba1581c
[client,sdl] fixed warning in webview
2023-05-30 15:42:39 +02:00
akallabeth
f941a1ec8e
[cmake] unify RPATH settings and client deps detection
2023-05-26 11:38:32 +02:00
akallabeth
b8f7b59fff
[warnings] fix casts and return
2023-05-24 08:24:32 +02:00
akallabeth
9f2d22c975
[client,sdl] refactor webview
2023-05-24 08:24:32 +02:00