Commit Graph

518 Commits

Author SHA1 Message Date
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
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
842624f25a [client,sdl] check function return in dialogs 2026-01-27 15:22:24 +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
49ddfe65f9 [client,sdl] add toString methods for various types
* unify and add toString methods for types
* add missing event types
2026-01-27 15:22:21 +01:00
akallabeth
743e1a6799 [client,sdl] add new SdlWindow members
* get orientation of window on display
* get window size (in logical size)
2026-01-27 15:22:20 +01:00
akallabeth
2bbe3310ba [warnings] fix compiler and clang-tidy issues 2026-01-27 15:22:18 +01:00
akallabeth
4c15ec1b99 [client,sdl] add nodiscard to functions 2026-01-27 15:22:17 +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
636590374a [client,sdl] mark functions nodiscard
* mark all SDL client functions nodiscard to emit warnings if the return
  is not properly checked
* refactor some member functions, move implementation from header to
  source
2026-01-27 15:22:13 +01:00
akallabeth
2fe15703b3 [client,sdl] split SdlContext to separate files 2026-01-27 15:22:12 +01:00
akallabeth
5f8c0a86d9 [client,sdl] encapsulate window class 2026-01-27 15:22:11 +01:00
akallabeth
f183b1d258 [client,sdl] add utils functions
* Add HighDpiScaleMode platformScaleMode(): get the platform specific
  high dpi hangling type
* Move and rename sdl exit codes to separate namespace
* mark all functions [[nodiscard]]
2026-01-27 15:22:10 +01:00
akallabeth
af48763b9a [client,sdl] simplify sdl thread startup 2026-01-27 15:22:08 +01:00
akallabeth
c42ecbd183 [client,sdl] reset pointer after memory release 2026-01-26 11:26:48 +01:00
akallabeth
7d8c61931b [c,printf] fix wlog format string to match arguments 2026-01-16 12:08:07 +01:00
akallabeth
9964f8669d [client,sdl] modernize code 2026-01-15 13:45:36 +01:00