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:
@@ -891,7 +891,7 @@ Multi-Monitor Support:
|
|||||||
multimon = conn.get("multimon", "No")
|
multimon = conn.get("multimon", "No")
|
||||||
use_specific_monitors = multimon in ["2 Monitors", "3 Monitors", "4 Monitors"]
|
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
|
monitor_list = None
|
||||||
if use_specific_monitors:
|
if use_specific_monitors:
|
||||||
if multimon == "2 Monitors":
|
if multimon == "2 Monitors":
|
||||||
@@ -901,15 +901,11 @@ Multi-Monitor Support:
|
|||||||
elif multimon == "4 Monitors":
|
elif multimon == "4 Monitors":
|
||||||
monitor_list = self._get_best_monitor_selection(4)
|
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")
|
resolution = conn.get("resolution", "1920x1080")
|
||||||
if resolution == "Full Screen" and not use_specific_monitors:
|
if resolution == "Full Screen":
|
||||||
cmd.append("/f")
|
cmd.append("/f")
|
||||||
elif resolution == "Full Screen" and use_specific_monitors:
|
self.logger.info("Using fullscreen mode")
|
||||||
# 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}")
|
|
||||||
else:
|
else:
|
||||||
cmd.append(f"/size:{resolution}")
|
cmd.append(f"/size:{resolution}")
|
||||||
|
|
||||||
@@ -917,15 +913,10 @@ Multi-Monitor Support:
|
|||||||
color_depth = conn.get("color_depth", 32)
|
color_depth = conn.get("color_depth", 32)
|
||||||
cmd.append(f"/bpp:{color_depth}")
|
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:
|
if use_specific_monitors:
|
||||||
# Method 1: Try /monitors: without /size for better compatibility
|
|
||||||
cmd.append(f"/monitors:{monitor_list}")
|
cmd.append(f"/monitors:{monitor_list}")
|
||||||
self.logger.info(f"Using specific monitors for {multimon}: {monitor_list} (Method 1: /monitors: only)")
|
self.logger.info(f"Using fullscreen across specific monitors for {multimon}: {monitor_list}")
|
||||||
|
|
||||||
# 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:")
|
|
||||||
|
|
||||||
elif multimon == "All Monitors":
|
elif multimon == "All Monitors":
|
||||||
cmd.append("/multimon")
|
cmd.append("/multimon")
|
||||||
|
|||||||
Reference in New Issue
Block a user