- append the window index to the title. This helps wayland compositor scripts move the multimon windows to different monitors, as Wayland does not obey the placement hint.
- fixed inverted logic when checking the SmartSizing setting.
- properly compute the offsets for each monitor, when monitors have negative offsets or when primary monitor isn't at origin 0:0.
‣ SDL_VIDEODRIVER=wayland sdl-freerdp3 /list:monitor
* [3] [ASUSTek COMPUTER INC VG27AQML1A S2LMQS007046 (DP-1)] 2560x1440 +0+0
[4] [ASUSTek COMPUTER INC VG27AQML1A S2LMQS007036 (HDMI-A-2)] 1440x2560 +2560+-550
If the offset is not taken into account, the remote desktop will be drawn with black borders at the top or left hand side of the windows.
- fix smart sizing being applied when not requested (overwriting proper offsets for multimon) and not being applied when requested.
- add monitor ID in the window title to enable wayland compositors (e.g. hyprland) to find the various windows.
hyprland has one workspace per monitor and refuses to let the application choose the monitor (or sdl-freerdp does not ask nicely).
sdl-freedrp /multimon opens both windows on the same screen.
adding a monitor identifier in the title allows hyprland rules to find the window and move it to the proper workspace.
These changes allow sdl-freedrp to find the correct geometry on X11 and Wayland compositors (tested on plasma/kwin and hyprland, on X11, XWayland and native wayland)
- properly compute the offsets for each monitor, when monitors have negative offsets.
‣ SDL_VIDEODRIVER=wayland sdl-freerdp3 /list:monitor
* [3] [ASUSTek COMPUTER INC VG27AQML1A S2LMQS007046 (DP-1)] 2560x1440 +0+0
[4] [ASUSTek COMPUTER INC VG27AQML1A S2LMQS007036 (HDMI-A-2)] 1440x2560 +2560+-550
If the negative offset is not taken into account, the remote desktop will be drawn with black borders at the top or left hand side of the windows.
- also ensures these offsets are not reset at each redraw.
- add monitor ID in the window title to enable wayland compositors (e.g. hyprland) to find the various windows.
hyprland has one workspace per monitor and refuses to let the application choose the monitor (or sdl-freerdp does not ask nicely).
sdl-freedrp /multimon opens both windows on the same screen.
adding a monitor identifier in the title allows hyprland rules to find the window and move it to the proper workspace.
These changes allow sdl-freedrp to find the correct geometry on Wayland compositors (tested on plasma/kwin and hyprland) when using SDL_VIDEODRIVER=wayland
* create proper class hierarchy for widgets
* encapsulate colors and widget specific drawing in class
* add <ctrl>+<backspace> shortcut do erase text in input dialogs
* use std::shared_ptr for all SDL related allocated variables
* improve SDL polling loop, process all pending events before continuing
to update the UI
* fix input dialog clipboard support
Use a clipboard mime type with a GUID to identify the specific FreeRDP
instance. When running multiple clients it might confuse a clipboard
update from another instance with an internal one otherwise.
* on high dpi displays set appropriate initial display size (divide
pixel size with scale)
* send display resize on window resize events
* send display resize on any window event (minimize/maximize/expose/...)