From mike.gabriel@das-netzwerkteam.de  Fri May 15 13:59:14 2015
Received: (at submit) by bugs.x2go.org; 15 May 2015 11:59:17 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED
	autolearn=ham version=3.3.2
Received: from freya.das-netzwerkteam.de (freya.das-netzwerkteam.de [88.198.48.199])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 12EB75DA82
	for <submit@bugs.x2go.org>; Fri, 15 May 2015 13:59:14 +0200 (CEST)
Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98])
	by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 890301F4;
	Fri, 15 May 2015 13:59:13 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
	by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 3874E3BCF7;
	Fri, 15 May 2015 13:59:13 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de
Received: from grimnir.das-netzwerkteam.de ([127.0.0.1])
	by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id lZBldvuRT6vO; Fri, 15 May 2015 13:59:13 +0200 (CEST)
Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
	by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id CBEB83BA92;
	Fri, 15 May 2015 13:59:12 +0200 (CEST)
Received: from m-097.informatik.uni-kiel.de (m-097.informatik.uni-kiel.de
 [134.245.254.97]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
 Fri, 15 May 2015 11:59:12 +0000
Date: Fri, 15 May 2015 11:59:12 +0000
Message-ID: <20150515115912.Horde.GtfqM24QvRXo7Sd2CZWsHw1@mail.das-netzwerkteam.de>
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: uli42@gmx.de, Ulrich Sibiller <ulrich.sibiller@gmail.com>,
 submit@bugs.x2go.org
Cc: x2go-dev@lists.x2go.org, o.schneyder@phoca-gmbh.de
Subject: Turn xinerama.conf file related code inside X2Go Client into legacy
 code (for NX agents << 3.6)
In-Reply-To: <CANVnVYLzxmdzSLWPqzvhLbYSXYgSXiPT+=XD73RnpRri2-X0iQ@mail.gmail.com>
User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
Accept-Language: de,en
Organization: DAS-NETZWERKTEAM
X-Originating-IP: 134.245.254.97
X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101
 Firefox/32.0 Iceweasel/32.0
Content-Type: multipart/signed; boundary="=_kC80uDyZwpmK96GwkCbtmQ2";
 protocol="application/pgp-signature"; micalg=pgp-sha1
MIME-Version: 1.0

This message is in MIME format and has been PGP signed.

--=_kC80uDyZwpmK96GwkCbtmQ2
Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=20=20
in=20nx-libs recently for the 3.6.x branch of nx-libs [1].

The complete Xinerama code has been rewritten and moved mainly into=20=20
the=20hw/nxagent/Screen.c file, so that we can soon drop your patched=20=20
libNX_Xinerama.so=20library and all that LD_LIBRARY_PATH stuff from=20=20
x2goruncommand.

With=20Ulrichs work, the hacky part in X2Go Client of writing and=20=20
continuously=20updating a xinerama.conf file server-side from the=20=20
client-side=20becomes obsolete and should only be kepts as legacy code=20=
=20
for=20cases 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=3D: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 =3D=3D -1)
>         xinSizeInc=3D1;
>     else
>         xinSizeInc=3D-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=3DproxyWinGeometry();
> #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?


--=20

DAS-NETZWERKTEAM
mike=20gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x=
fb

--=_kC80uDyZwpmK96GwkCbtmQ2
Content-Type: application/pgp-signature
Content-Description: Digitale PGP-Signatur
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAABAgAGBQJVVd+QAAoJEJr0azAldxsxtCIP/1hu3uCJfxl8qFUte5rCISzM
2/MgiHou835OpiIyGOiw8iIxF8bdcEvweHIsAGw16x8dBY39xQeVDDnXLPWilz58
/6uu9h1NBgKT/SlKMMlFQtBi1HuuM/Klq+JhtchT0Fw/0M9o9wcrSsp1VD7GPDky
PUJzqPtAOi5tgMBCQZzXJ+QSA+Wa+4P+PcCQGWrEegyqWsx5RddcBrPCTLTGqwdi
1lNVj+qqfmrElySv+0ZYsaSC0sWWsL6FO0aAb7nwRA3ZAROz1bA1qsSYe0XqI5bk
zne5GnNll+fwi2PBWp2iCebTC+6MDfbX/7uAjwPVl0QtTsSWm3MId6nX1EkGRTqJ
t8TwLkEZ+m+Pz5Wjv5ry74b1oD+zrFp1BR5PzbyzVELaVkCiqTGHxMtGXtQ/j6sh
qIH8ZIe6qx4iYoTiv8qnGVQ2W3ZfrZlUFv4WpiBUQqH+FCd+tBYJ0xk3y1iQKkHd
drIDStSYXisLpp2bX8f/jBmjtT9u7HMtJVv3Fas6anAKiYpVj6eXboEPSHHLbxjG
spdUVJfXwddcXcwyy88tcR7zM+Z9qf43HRYJaiL1YFWTgqIWuVDY1cQujVmcXFwF
gB0ppFqMpItV6u+Q9hAqoYgJmX2OA39pZOkzcyIwLfNBaJg2gJ9QhJtqrVJgx7q2
mIU5h2Of0SuRKUQ4FaYV
=Z2T3
-----END PGP SIGNATURE-----

--=_kC80uDyZwpmK96GwkCbtmQ2--

