efea17a5fe
[client,SDL] Handle window sizing on scaled displays
2026-03-04 17:48:09 +09:00
Armin Novak
5b4fae7afb
[client,sdl] ignore input events unless connected
...
Ignore events that occur while the client is not fully connected.
2026-03-01 08:02:42 +01:00
Armin Novak
0445ed6734
[winpr,pubsub] check return of PubSub_Subscribe
2026-02-27 15:52:32 +01:00
Armin Novak
6ac6eaec9b
[client,sdl] remove multimonitor warning
2026-02-25 19:39:28 +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
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
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
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
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
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
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
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
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
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
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
7258c77838
[client,sdl] fix local scaled drawing
...
* Add scaling factor to drawing routines
* Update local scaling on each draw
2026-01-27 15:22:25 +01:00
akallabeth
1ce038c12b
[client,sdl] unify stringification functions
2026-01-27 15:22:23 +01:00
akallabeth
abdedab33c
[client,sdl] encapsulate and unify event handling
...
* move event handling to SdlContext
* name functions similar
2026-01-27 15:22:22 +01:00
akallabeth
2bbe3310ba
[warnings] fix compiler and clang-tidy issues
2026-01-27 15:22:18 +01:00
akallabeth
845ef25997
[client,sdl] fix unused return warnings
2026-01-27 15:22:15 +01:00
akallabeth
caffbab7d4
[client,sdl] fix display channel updates
...
* always send updates if enabled and a monitor setting changed
* properly handle window and display updates
2026-01-27 15:22:14 +01:00
akallabeth
2fe15703b3
[client,sdl] split SdlContext to separate files
2026-01-27 15:22:12 +01:00