akallabeth
86d8bf840d
Merge pull request #12340 from akallabeth/smartcard-stop-fix
...
Smartcard stop fix
2026-02-23 17:06:12 +01:00
Armin Novak
5f62aa11c1
[client,sdl] fix sdl_Pointer_New
...
reset ptr->data after free.
2026-02-23 08:52:01 +01:00
Armin Novak
0caa0fb4f6
[client,sdl] make logging less verbose
2026-02-20 10:04:41 +01:00
Armin Novak
d20f9af0e8
[client,sdl] fix single window dynamic screen updates
2026-02-17 16:38:35 +01:00
Armin Novak
66d84e7f45
[client,sdl] fix a memory leak on startup
2026-02-17 16:14:15 +01:00
Armin Novak
df64d00a97
[warnings,api] fix -Wunused-result
...
With marking publid API [[nodiscard]] some problematic error checks in
the core library were uncovered. This commit addresses these
shortcomings.
2026-02-17 11:07:08 +01:00
Armin Novak
1ac24accf0
[client,sdl] fix move constructor of SdlWindow
2026-02-14 20:35:25 +01:00
akallabeth
0ff34a1124
Merge pull request #12217 from akallabeth/sdl-fs
...
Sdl fullscreen
2026-02-14 12:20:03 +01:00
Armin Novak
52cd988410
[client,sdl] fix cursor surface creation
...
* Pass the pixel width and height to SDL_CreateSurface
* Pass display scaled hotspot to SDL_CreateColorCursor
2026-02-14 10:06:12 +01:00
Armin Novak
3503be620a
[client,sdl] log cursor scale
2026-02-14 10:03:01 +01:00
Armin Novak
07bf4e9c10
[client,sdl] improve cursor updates
...
* use std::unique_ptr for temporary SDL_Surface (ease up cleanup)
* better logging of errors (add full surface details)
2026-02-14 10:02:57 +01:00
Armin Novak
1b577a755e
[client,sdl] add toString for SDL_Rect
2026-02-14 09:44:47 +01:00
Armin Novak
da71c28c9c
[client,sdl] create a map of pixel coordinates
...
We need pixel coordinates for each monitor, but SDL may return logical
coordinates depending on HighDPI mode used by the system.
This commit does:
* Detect which HighDPI mode is in use isHighDPIWindowsMode
* Creates a map of pixel coordinates for each monitor
* recreated whenever a monitor changes)
* Updates the window rdpMonitor data for existing windows
2026-02-13 19:24:15 +01:00
akallabeth
3cb88eefd6
[client,sdl] detect displays on startup before RDP
...
do a simple display query on main SDL thread before starting RDP.
This way the required rdpMonitor details are already available when the
monitor layout or desktop resolution must be sent to the server
2026-02-13 19:24:15 +01:00
akallabeth
e2dd2eedab
[client,sdl] implement display detection handling
...
* SdlContext::detectDisplays to create a initial list of displays and
their rdpMonitor configuration
* SdlContext::getDisplays to query a SDL_DisplayID at runtime
* SdlContext::getDisplayIds to query available SDL_DisplayID at runtime
2026-02-13 19:24:15 +01:00
akallabeth
efa15e1dc2
[client,sdl] implement a static SdlWindow::query function
...
The display settings can not be proplerly queried by SDL without a
window. Create a temporary, invisible window for a requested monitor and
query the required details from that window.
2026-02-13 19:24:14 +01:00
akallabeth
99a44990ba
[client,sdl] rename SdlContext::removeDisplay
...
To match with SdlContext::addDisplayWindow rename it to
SdlContext::removeDisplayWindow
2026-02-13 19:24:10 +01:00
14c66c8bfc
[client,SDL] Fix properly handle smart-sizing
...
* In fullscreen set desktop resolution to argument provided with
/smart-sizing:<width>x<height>
* In window mode set the window size to /size:<width>x<height> and the
remote resolution to /smart-sizing:<width>x<height>
* Ignore and print a warning if /multimon is in use (currently not
defined)
2026-02-13 09:07:09 +01:00
Armin Novak
fd9d199fd5
[client,sdl] use bounds checking vector accessors
2026-02-10 19:27:48 +01:00
Armin Novak
adbab03503
[client,sdl] modernize C++: use std::scope_guard
2026-02-10 15:53:07 +01:00
Armin Novak
6f6ab57eb7
[client,sdl] use std::make_shared
2026-02-10 15:53:05 +01:00
Armin Novak
5624856b8b
[client,sdl] fix missing include
2026-02-10 15:53:03 +01:00
motor-dev
d01698752c
[client,sdl] fix multimon/fullscreen on wayland
...
Help SDL identify the display to use for fullscreen even when compositors interfere with window positions.
SDL respects the intent of a window if it is moved to the appropriate display just before it is made fullscreen.
2026-02-05 23:16:24 +01:00
akallabeth
b7a92956e6
[client,sdl] log all cursor related errors
2026-01-29 22:00:46 +01:00
akallabeth
f24ac2c7b0
[client,sdl] add SDL_Error to exceptions
2026-01-29 20:46:21 +01:00
akallabeth
4e3b4d9371
[client,sdl] do not apply window offset
...
only apply the offsets if multimon drawing is active.
2026-01-28 22:44:21 +01:00
akallabeth
a97a2ef24d
[client,sdl] refactor exception class
2026-01-28 22:05:32 +01:00
akallabeth
a9e3954076
[client,sdl] simplify mouse cursor update and restore
2026-01-28 21:49:31 +01:00
akallabeth
7e220eee98
[client,sdl] ignore missing renderer
...
When trying to map screen to pixel coordinates ignore a NULL renderer.
This was sometimes observed with X11 backend.
2026-01-28 21:31:59 +01:00
akallabeth
241f338ad1
[client,sdl] log all sdl_run errors
2026-01-28 21:31:57 +01:00
akallabeth
fe9a1b0eed
[client,sdl] add error checks and logs
2026-01-28 21:31:54 +01:00
akallabeth
2bec6913a8
[client,sdl] fix multimonitor mouse coordinates
...
apply monitor offset to window coordinates.
2026-01-28 21:31:50 +01:00
akallabeth
1be664218c
[client,sdl] simplify window creation
2026-01-28 13:41:05 +01:00
akallabeth
3eb660ace5
[client,sdl] remove display id from title
2026-01-28 13:22:29 +01:00
akallabeth
56d6836ceb
[client,sdl] update mouse pointer when mouse enters
2026-01-28 13:22:26 +01:00
Armin Novak
501740404f
[client,sdl] check for XWayland for warning
...
Also check for a wayland environment if the SDL driver is x11. This is
also affected by the multimonitor bug.
2026-01-27 15:35:12 +01:00
Armin Novak
00cfc36987
[client,sdl] warn about multimonitor issues
2026-01-27 15:22:44 +01:00
Armin Novak
197ac808fd
[client,sdl] handle render events in SdlContext
2026-01-27 15:22:42 +01:00
Armin Novak
03c350950a
[client,sdl] handle input events in SdlContext
2026-01-27 15:22:41 +01:00
Armin Novak
ba07955689
[client,sdl] handle clipboard events in SdlContext
2026-01-27 15:22:40 +01:00
akallabeth
dcdde8122d
[client,sdl] adjust nodiscard use for dialogs
2026-01-27 15:22:39 +01:00
akallabeth
d74eecff3b
[client,sdl] ignore set_mouseover result
...
The function might return false if no item was selected.
2026-01-27 15:22:37 +01:00
akallabeth
57034f2294
[client,sdl] fix compiler warnings
2026-01-27 15:22:36 +01:00
akallabeth
947427a911
[client,sdl] simplify event handling
...
pass on events to SdlContext and let the class handle it internally
2026-01-27 15:22:35 +01:00
akallabeth
9468720d93
[client,sdl] refactor sdlInput
...
* fix return types, use standard types instead of WinPR ones
* rename files, match class names
2026-01-27 15:22:33 +01:00
akallabeth
7f434db04a
[client,sdl] use SdlContext scaling functions
2026-01-27 15:22:32 +01:00
akallabeth
c6b104cce0
[client,sdl] wrap mouse cursor move in SdlContext
2026-01-27 15:22:31 +01:00
akallabeth
2e7639d903
[client,sdl] add coordinat conversion functions
...
* pixel to screen mapper
* screen to pixel mapper
* local scaling add/remove for smart-sizing
2026-01-27 15:22:30 +01:00
akallabeth
02a9d61182
[client,sdl] remove unused channel function definitions
2026-01-27 15:22:28 +01:00
akallabeth
e3d3bc363c
[client,sdl] add util stringify functions
2026-01-27 15:22:27 +01:00