X2Go Bug report logs - #872
Turn xinerama.conf file related code inside X2Go Client into legacy code (for NX agents << 3.6)

version graph

Package: x2goclient; Maintainer for x2goclient is X2Go Developers <x2go-dev@lists.x2go.org>; Source for x2goclient is src:x2goclient.

Reported by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

Date: Fri, 15 May 2015 12:00:01 UTC

Severity: important

Found in version 4.0.4.0

Full log


Message #10 received at 872@bugs.x2go.org (full text, mbox, reply):

Received: (at 872) by bugs.x2go.org; 18 May 2015 08:40:59 +0000
From mike.gabriel@das-netzwerkteam.de  Mon May 18 10:40:57 2015
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 EF3715DA83
	for <872@bugs.x2go.org>; Mon, 18 May 2015 10:40:56 +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 9AEA01C43;
	Mon, 18 May 2015 10:40:56 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
	by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 530DD3BAC0;
	Mon, 18 May 2015 10:40:56 +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 C4vshZtVnghp; Mon, 18 May 2015 10:40:56 +0200 (CEST)
Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1])
	by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id A463D3BA55;
	Mon, 18 May 2015 10:40:55 +0200 (CEST)
Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de
 [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP;
 Mon, 18 May 2015 08:40:55 +0000
Date: Mon, 18 May 2015 08:40:55 +0000
Message-ID: <20150518084055.Horde.mlraxHD7gXZTq0IPaU98Eg1@mail.das-netzwerkteam.de>
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de>
Cc: 872@bugs.x2go.org
Subject: Re: [X2Go-Dev] Turn xinerama.conf file related code inside X2Go
 Client into legacy code (for NX agents << 3.6)
References: <20150515115912.Horde.GtfqM24QvRXo7Sd2CZWsHw1@mail.das-netzwerkteam.de>
 <55583925.1040206@phoca-gmbh.de>
In-Reply-To: <55583925.1040206@phoca-gmbh.de>
User-Agent: Internet Messaging Program (IMP) H5 (6.2.2)
Accept-Language: de,en
Organization: DAS-NETZWERKTEAM
X-Originating-IP: 178.62.101.154
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="=_L2mscL0TGkmxNXEvOYDvAw4";
 protocol="application/pgp-signature"; micalg=pgp-sha1
MIME-Version: 1.0
[Message part 1 (text/plain, inline)]
Hi Alex,
(re-adding #872 to Cc:, dropping x2go-dev instead)

(my answers in-line at end of mail text)

On  So 17 Mai 2015 08:45:57 CEST, Oleksandr Shneyder wrote:

> Am 15.05.2015 um 13:59 schrieb Mike Gabriel:
>> 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?

> It's a great news. Do we need to make a changes in the X2Go Client for

X2Go Client needs to test the remote x2goagent version and check  
whether it is << 3.5.99.0 or >= 3.5.99.0. If it is >= 3.5.99.0, the  
new Xinerama support will be present (once we have released 3.5.99.0,  
at the moment the code has not been merged). If the new Xinerama code  
is present, then there is no need for the xinerama.conf server-side  
writing/updating anymore.

> this? I think it should be sufficient to make changes in x2goruncommand.

I think that too, see X2GoBTS #873 [1].

> Should user still have possibility to turn Xinerama off? I can still

This is a good question. I don't think that we should include the  
xinerama.conf part in nxagent anymore, but a way for switching off the  
Xinerama extension should be possible, indeed.

The current plan is to make the cmdline options +xinerama / -xinerama  
(or -extension Xinerama) functional in nxagent. With all previous  
versions of nxagent, this did not have any effect, so far. Ulrich is  
working on that.

> imagine the use case when user have an x2goagent window in the middle of
> two physical monitors but want to see agent window as one display.

Indeed.

> regards
> Alex

Mike

[1] https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=873
-- 

DAS-NETZWERKTEAM
mike gabriel, 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.xfb
[Message part 2 (application/pgp-signature, inline)]

Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Thu Nov 21 15:26:09 2024; Machine Name: ymir.das-netzwerkteam.de

X2Go Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.