[X2Go-Dev] Bug#872: Turn xinerama.conf file related code inside X2Go Client into legacy code (for NX agents << 3.6)
Mike Gabriel
mike.gabriel at das-netzwerkteam.de
Fri May 15 13:59:12 CEST 2015
Package: x2goclient
Severity: important
Version: 4.0.4.0
Hi Uli, hi Alex,
I turn this discussion into a bug report against X2Go Client.
Short summary for Alex: Ulrich has completely revisited [2] Xinerama
in nx-libs recently for the 3.6.x branch of nx-libs [1].
The complete Xinerama code has been rewritten and moved mainly into
the hw/nxagent/Screen.c file, so that we can soon drop your patched
libNX_Xinerama.so library and all that LD_LIBRARY_PATH stuff from
x2goruncommand.
With Ulrichs work, the hacky part in X2Go Client of writing and
continuously updating a xinerama.conf file server-side from the
client-side becomes obsolete and should only be kepts as legacy code
for cases where X2Go Client talks to nxagent servers << 3.6.
I'd also appreciate it if you could give feedback on the below question.
Thanks,
Mike
[1] https://github.com/ArcticaProject/nx-libs
[2] https://github.com/ArcticaProject/nx-libs/pull/23
On Do 14 Mai 2015 23:32:03 CEST, Ulrich Sibiller wrote:
> while testing my xinerama re-implementation I noticed that x2goclient
> reports a wrong width sometimes when simply moving the window without
> changing the size. The reported size differs by one pixel (too much
> or too little). When running x2goclient --debug you can see this:
>
> x2go-DEBUG-../src/onmainwindow.cpp:10160> "New proxy geometry: (x:
> 329, y: 214, w: 1440, h: 900"
> x2go-DEBUG-../src/onmainwindow.cpp:10160> "New proxy geometry: (x:
> 365, y: 213, w: 1440, h: 900"
> x2go-DEBUG-../src/onmainwindow.cpp:10160> "New proxy geometry: (x:
> 825, y: 190, w: 1440, h: 900"
> x2go-DEBUG-../src/sshprocess.cpp:189> executing remote command via
> SshProcess object (24): "export DISPLAY=:50;printf '\''1095 0 345
> 900\n0 0 1095 900'\'' >
> $HOME/.x2go/C-uli-50-1431636769_stDKDE_dp24/xinerama.conf"
>
> -> here the 345 should have been a 344.
>
> Interestingly my patched x2goagent (that completely ignores
> xinerama.conf) sees that value. So I conclude that x2goclient is
> manipulating the nxproxy window size by one pixel itself. Disabling
> xinerama in the session's configuration fixes the problem.
>
> That off-by-one behaviour is caused by this code in onmainwindow.cpp:
>
> void ONMainWindow::slotXineramaConfigured()
> {
> if (resumingSession.fullscreen)
> return;
> if (xinSizeInc == -1)
> xinSizeInc=1;
> else
> xinSizeInc=-1;
> #ifdef Q_OS_LINUX
> lastDisplayGeometry.setWidth(lastDisplayGeometry.width()+xinSizeInc);
> XSync(QX11Info::display(),false);
> XResizeWindow(QX11Info::display(), proxyWinId,
> lastDisplayGeometry.width(),lastDisplayGeometry.height());
> XSync(QX11Info::display(),false);
> #endif
> #ifdef Q_OS_WIN
> QRect geom;
> wapiWindowRect ( (HWND) proxyWinId, geom );
> wapiMoveWindow( (HWND) proxyWinId, geom.x(), geom.y(),
> geom.width()+xinSizeInc, geom.height(),true);
> lastDisplayGeometry=proxyWinGeometry();
> #endif
> xineramaTimer->start(500);
> }
>
> If I set xinSizeInc to zero in all cases the off-by-one behaviour is
> completely gone. Why does xinSizeInc exist at all?
--
DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148
GnuPG Key ID 0x25771B31
mail: mike.gabriel at das-netzwerkteam.de, http://das-netzwerkteam.de
freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: Digitale PGP-Signatur
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20150515/7553ad97/attachment-0001.pgp>
More information about the x2go-dev
mailing list