Skip to content

Commit

Permalink
#3384 pass shadow geometry options to remote server
Browse files Browse the repository at this point in the history
but ignore them when matching socket paths
  • Loading branch information
totaam committed Apr 26, 2022
1 parent fa074e8 commit 6c57572
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
17 changes: 12 additions & 5 deletions xpra/scripts/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -1849,7 +1849,11 @@ def run_remote_server(script_file, cmdline, error_cb, opts, args, mode, defaults
#add special flags to "display_as_args"
proxy_args = []
if params.get("display") is not None:
proxy_args.append(params["display"])
geometry = params.get("geometry")
display = params["display"]
if mode=="shadow" and geometry:
display += ",%s" % (geometry, )
proxy_args.append(display)
for x in get_start_server_args(opts, compat=True):
proxy_args.append(x)
#we have consumed the start[-child] options
Expand Down Expand Up @@ -2289,7 +2293,11 @@ def start_server_subprocess(script_file, args, mode, opts,
if display_name.startswith("S"):
matching_display = None
else:
matching_display = display_name
if display_name.startswith(":") and display_name.find(",")>0:
#remove options from display name
matching_display = display_name.split(",", 1)[0]
else:
matching_display = display_name
if WIN32:
assert mode=="shadow"
assert display_name
Expand Down Expand Up @@ -2474,14 +2482,13 @@ def run_proxy(error_cb, opts, script_file, args, mode, defaults):
if not args and mode=="_proxy_shadow_start":
try:
display_name = pick_shadow_display(dotxpra, args)
args = [display_name]
except Exception:
#failed to guess!
pass
else:
args = [display_name]
elif args:
display = pick_display(error_cb, opts, args)
display_name = display.get("display_name")
display_name = display.get("display")
if display_name:
state = dotxpra.get_display_state(display_name)
if state!=DotXpra.DEAD:
Expand Down
13 changes: 10 additions & 3 deletions xpra/scripts/parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -595,14 +595,21 @@ def _parse_remote_display(s):

if display_name.startswith(":"):
assert not WIN32, "X11 display names are not supported on MS Windows"
options = None
display = display_name
if display_name.find(",")>0:
display, options = display_name.split(",", 1)
desc.update({
"type" : "unix-domain",
"local" : True,
"display" : display_name,
"socket_dirs" : opts.socket_dirs})
opts.display = display_name
"display" : display,
"socket_dirs" : opts.socket_dirs,
})
opts.display = display
if opts.socket_dir:
desc["socket_dir"] = opts.socket_dir
if options:
desc["options"] = options
return desc

if protocol in ("tcp", "ssl", "ws", "wss", "vnc"):
Expand Down

0 comments on commit 6c57572

Please sign in to comment.