Commit Graph

214 Commits

Author SHA1 Message Date
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