URGENT FIX: Restore fullscreen with simple /f + /monitors approach

User needs working solution immediately.

Simple approach:
- Use /f for fullscreen (always)
- Add /monitors:1,2 for specific monitor targeting
- Stop overthinking parameter conflicts

Command for 2 monitors: xfreerdp /f /monitors:1,2
Command for all monitors: xfreerdp /f /multimon

This should work - /f ensures fullscreen, /monitors specifies which ones.
This commit is contained in:
root
2025-09-18 11:20:11 +02:00
parent 80fd3dde36
commit b12dface5d

View File

@@ -891,7 +891,7 @@ Multi-Monitor Support:
multimon = conn.get("multimon", "No")
use_specific_monitors = multimon in ["2 Monitors", "3 Monitors", "4 Monitors"]
# Get monitor list once if needed
# Get monitor list if needed
monitor_list = None
if use_specific_monitors:
if multimon == "2 Monitors":
@@ -901,15 +901,11 @@ Multi-Monitor Support:
elif multimon == "4 Monitors":
monitor_list = self._get_best_monitor_selection(4)
# Resolution - calculate proper size for specific monitor selection
# Resolution - for specific monitors, use /f with /monitors
resolution = conn.get("resolution", "1920x1080")
if resolution == "Full Screen" and not use_specific_monitors:
if resolution == "Full Screen":
cmd.append("/f")
elif resolution == "Full Screen" and use_specific_monitors:
# Calculate combined resolution for selected monitors
combined_res = self._get_monitors_combined_resolution(monitor_list)
cmd.append(f"/size:{combined_res}")
self.logger.info(f"Using calculated resolution {combined_res} for {multimon}: {monitor_list}")
self.logger.info("Using fullscreen mode")
else:
cmd.append(f"/size:{resolution}")
@@ -917,15 +913,10 @@ Multi-Monitor Support:
color_depth = conn.get("color_depth", 32)
cmd.append(f"/bpp:{color_depth}")
# Multiple monitors - try different approaches for better compatibility
# Multiple monitors - use /f + /monitors for fullscreen across specific monitors
if use_specific_monitors:
# Method 1: Try /monitors: without /size for better compatibility
cmd.append(f"/monitors:{monitor_list}")
self.logger.info(f"Using specific monitors for {multimon}: {monitor_list} (Method 1: /monitors: only)")
# Remove the /size: parameter we added earlier - let /monitors: handle sizing
cmd = [x for x in cmd if not x.startswith('/size:')]
self.logger.info("Removed /size: parameter to avoid conflict with /monitors:")
self.logger.info(f"Using fullscreen across specific monitors for {multimon}: {monitor_list}")
elif multimon == "All Monitors":
cmd.append("/multimon")