Xpra: Ticket #2249: xpra multi-screen shadow has pointer issues

2019-04-03 11:40:49,790 xpra GTK2 shadow version 2.5-r22096 64-bit
2019-04-03 11:40:49,794  running with pid 18889 on Linux Ubuntu 16.04 xenial
set "XPRA_EXECUTABLE=C:\Users\stavros.ntentos\Documents\xpra-clients\Xpra-Client-Python3-x86_64_2.5-r22135"
2019-04-03 11:40:51,056 Python/GTK3 Microsoft Windows 10 aero client version 2.5-r22135 64-bit
Xpra-Client-Python3-x86_64_2.5-r22135\xpra_cmd" shadow ssh://user@ip/0  --clipboard=no --opengl=no --desktop-scaling=0.75 --webcam=no --speaker=off --microphone=off

(splitting from #2131, since it feels that it's worth a bug of it's own)

There is a weird issue that happens only in multi-screen shadow.

tl;dr: all shadow client windows "translate mouse coordinates to 0,0 of the X11 screen, not the 0,0 of the X11 monitor". Please check attachments for the visual representation.

I believe to be a client issue, since the pre-#1801 way seems to work nicely.

Also, I can only start XPRA_SHADOW_MULTI_WINDOW=0 xpra shadow directly on the server. If I do it inside an xpra start ssh://user@ip/200 --start=gnome-terminal it's not working. Is this a bug / do you want a new bug for that?

Wed, 03 Apr 2019 09:59:38 GMT - stdedos: attachment set

Wed, 03 Apr 2019 09:59:48 GMT - stdedos: attachment set

Wed, 03 Apr 2019 10:00:24 GMT - stdedos: attachment set

Wed, 03 Apr 2019 10:03:01 GMT - stdedos:


Downgrading to Xpra-x86_64_Setup_2.5-r21443, I see a couple of pointer issues.

Attached server and client outputs.

Wed, 03 Apr 2019 11:22:20 GMT - stdedos: attachment set

Wed, 03 Apr 2019 11:32:34 GMT - stdedos:

Some interesting discovery as well:

If I press Shift+F11 at :0.0 or :0.1, I get "the next screen" glued to the "fullscreened" one. (:0.2 has nothing to follow up, obviously).

It didn't look like it was "responsive" though. Probably there was no cursor transformation been applied.

Monitor-windows seem to otherwise appear normal:

1680x1050 * 0.75 leaves empty space to 1600x900 both horizontally and vertically. It used to be black to some older version, but now it "appears" to be transparent. I kept seeing the windows in the taskbar (in the horizontal empty space), and I could've had "Alt+Tab"ed to them. The "glued screen" was on the vertical empty space.

Wed, 03 Apr 2019 14:46:17 GMT - Antoine Martin: status changed

I can reproduce.

Wed, 03 Apr 2019 15:48:25 GMT - Antoine Martin: status changed; resolution, milestone set

This was caused by r20252 (#1941) + r21268. Also related to r19615 (#1658).

We already adjusted pointer events in GTKShadowServerBase._adjust_pointer, leaving the relative coordinates untouched and then X11ServerCore._get_pointer_abs_coordinates will use the relative coordinates to re-calculate the absolute ones. This uses the window model's get_geometry which is currently fixed at location (0, 0) for all shadow windows. So the re-adjusted coordinates almost always land on the first monitor (bar different resolutions per monitor).

So there were 2 ways of fixing this:

I've gone for the second option in r22291. (tiny code change - mostly docstrings explaining things) I think it makes more sense to expose the full geometry value we have, rather than patching it on the fly.

@stdedos: there are beta 3.0 packages with this fix.

Thu, 04 Apr 2019 10:30:53 GMT - stdedos:

Verified as fixed:

"Xpra-Python3-x86_64_3.0-r22261\xpra_cmd" shadow ssh://user@ip/0  --clipboard=no --opengl=no --desktop-scaling=0.75 --webcam=no --speaker=off --microphone=off
2019-04-04 13:27:03,065 Xpra GTK3 client version 3.0-r22261 64-bit
2019-04-04 13:27:03,067  running on Microsoft Windows 10
2019-04-04 13:27:03,713 GStreamer version 1.14.4 for Python 3.7.2 64-bit
2019-04-04 13:27:03,960  keyboard settings: layout=us
2019-04-04 13:27:03,964  desktop size is 1600x900 with 1 screen:
2019-04-04 13:27:03,965   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2019-04-04 13:27:03,965     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 131x131)
2019-04-04 13:27:03,965  downscaled to 75%, virtual screen size: 2133x1200
2019-04-04 13:27:03,966   Default (423x238 mm - DPI: 128x128) workarea: 2133x1147
2019-04-04 13:27:03,966     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 175x175)
2019-04-04 13:27:12,303 enabled remote logging
2019-04-04 13:27:12,306 Xpra GTK2 shadow server version 3.0-r22291 64-bit
2019-04-04 13:27:12,306  running on Linux Ubuntu 16.04 xenial
(Xpra_cmd.exe:17612): Pango-WARNING **: 13:27:12.875: couldn't load font "Bitstream Vera Sans Not-Rotated 11.7294921875", falling back to "Sans Not-Rotated 11.7294921875", expect ugly output.

Sat, 23 Jan 2021 05:46:10 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2249