Am 10.02.2012 11:34, schrieb Helmer Teles:
On Friday 10 February 2012 08:47:56 Oleksandr Shneyder wrote:
Am 03.02.2012 17:33, schrieb Helmer Teles:
Hello List,
I'm still having the same problem with latest windows client and latest
x2go Linux Client.
Problem still exists with X2goclient 3.99.1.0 Win32 Client running on
Windows XP, both with xinerama on or off.
Best wishes,
helmer.
Hello Helmer,
Yes, I can reproduce it. I don't think that it is a X2Go error, but
issue with nxagent or xfreerdp. I'll try to found the error, but it will
take some time.
regards,
alex
[...............] Hello Helmer, I found a problem in xfreerdp code. I have tried several times to post a problem description (inclusive solution and patch) to freerdp-devel mailing list. Unfortunately my posts are not published in list, though I got no error messages from mail-robot on freerdp-devel@lists.sourceforge.net. I giving up. Please try to repost it, if you have access to freerdp mailing-list: MAIL============== Hello Developers, one of X2Go users in our mailing list have reported, that there is a issue running xfreerdp on such X-Servers as nxagent or x2goagent. I spent some time for investigations, and found, that the way how xfreerdp searching for visual to create desktop window, working not for all X-Servers. in FreeRDP/client/X11/xfreerdp.c:395 if (vi->depth == xfi->depth) { xfi->visual = vi->visual; break; } As we can see, the first visual, which have the same colour depth as our screen will be chosen here. Unfortunately, such behaviour is not for every X-Server correct. Choosing wrong visual make function XCreateWindow() in FreeRDP/client/X11/xf_window.c:280 fail with error message: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 31 Current serial number in output stream: 35 To avoid this, I propose to get correct visual from properties of a root window. patch is attached. Regards, Alex ===================== PATCH================ diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c index de58122..ddd8e5b 100644 --- a/client/X11/xfreerdp.c +++ b/client/X11/xfreerdp.c @@ -353,6 +353,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi) XVisualInfo template; XPixmapFormatValues* pf; XPixmapFormatValues* pfs; + XWindowAttributes window_attributes_return; pfs = XListPixmapFormats(xfi->display, &pf_count); @@ -379,6 +380,13 @@ boolean xf_get_pixmap_info(xfInfo* xfi) template.class = TrueColor; template.screen = xfi->screen_number; + if(XGetWindowAttributes(xfi->display,RootWindowOfScreen(xfi->screen),&window_attributes_return)==0) + { + printf("xf_get_pixmap_info: XGetWindowAttributes failed\n"); + return false; + } + + vis = XGetVisualInfo(xfi->display, VisualClassMask | VisualScreenMask, &template, &vi_count); if (vis == NULL) @@ -392,7 +400,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi) { vi = vis + i; - if (vi->depth == xfi->depth) + if (vi->visual == window_attributes_return.visual) { xfi->visual = vi->visual; break; ============================ regards, Alex -- Oleksandr Shneyder Dipl. Informatik X2go Core Developer Team email: oleksandr.shneyder@obviously-nice.de web: www.obviously-nice.de --> X2go - everywhere@home
Hi Alex, Helmer, I have forwarded the mail for freerdp-devel, let's see if I am lucky. I am subscribed to the list so there is a chance... Mike On Di 14 Feb 2012 10:24:06 CET Oleksandr Shneyder wrote:
Am 10.02.2012 11:34, schrieb Helmer Teles:
On Friday 10 February 2012 08:47:56 Oleksandr Shneyder wrote:
Am 03.02.2012 17:33, schrieb Helmer Teles:
Hello List,
I'm still having the same problem with latest windows client and latest
x2go Linux Client.
Problem still exists with X2goclient 3.99.1.0 Win32 Client running on
Windows XP, both with xinerama on or off.
Best wishes,
helmer.
Hello Helmer,
Yes, I can reproduce it. I don't think that it is a X2Go error, but
issue with nxagent or xfreerdp. I'll try to found the error, but it will
take some time.
regards,
alex
[...............]
Hello Helmer,
I found a problem in xfreerdp code. I have tried several times to post a problem description (inclusive solution and patch) to freerdp-devel mailing list. Unfortunately my posts are not published in list, though I got no error messages from mail-robot on freerdp-devel@lists.sourceforge.net. I giving up. Please try to repost it, if you have access to freerdp mailing-list:
MAIL============== Hello Developers,
one of X2Go users in our mailing list have reported, that there is a issue running xfreerdp on such X-Servers as nxagent or x2goagent. I spent some time for investigations, and found, that the way how xfreerdp searching for visual to create desktop window, working not for all X-Servers.
in FreeRDP/client/X11/xfreerdp.c:395
if (vi->depth == xfi->depth) { xfi->visual = vi->visual; break; }
As we can see, the first visual, which have the same colour depth as our screen will be chosen here. Unfortunately, such behaviour is not for every X-Server correct. Choosing wrong visual make function XCreateWindow() in FreeRDP/client/X11/xf_window.c:280 fail with error message:
X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 31 Current serial number in output stream: 35
To avoid this, I propose to get correct visual from properties of a root window.
patch is attached.
Regards, Alex
PATCH================
diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c index de58122..ddd8e5b 100644 --- a/client/X11/xfreerdp.c +++ b/client/X11/xfreerdp.c @@ -353,6 +353,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi) XVisualInfo template; XPixmapFormatValues* pf; XPixmapFormatValues* pfs;
- XWindowAttributes window_attributes_return;
pfs = XListPixmapFormats(xfi->display, &pf_count);
@@ -379,6 +380,13 @@ boolean xf_get_pixmap_info(xfInfo* xfi) template.class = TrueColor; template.screen = xfi->screen_number;
if(XGetWindowAttributes(xfi->display,RootWindowOfScreen(xfi->screen),&window_attributes_return)==0)
{
printf("xf_get_pixmap_info: XGetWindowAttributes failed\n");
return false;
}
vis = XGetVisualInfo(xfi->display, VisualClassMask | VisualScreenMask, &template, &vi_count);
if (vis == NULL) @@ -392,7 +400,7 @@ boolean xf_get_pixmap_info(xfInfo* xfi) { vi = vis + i;
if (vi->depth == xfi->depth)
if (vi->visual == window_attributes_return.visual) { xfi->visual = vi->visual; break;
============================
regards, Alex
Oleksandr Shneyder Dipl. Informatik X2go Core Developer Team
email: oleksandr.shneyder@obviously-nice.de web: www.obviously-nice.de
--> X2go - everywhere@home
-- DAS-NETZWERKTEAM mike gabriel, dorfstr. 27, 24245 barmissen fon: +49 (4302) 281418, fax: +49 (4302) 281419 GnuPG Key ID 0xB588399B mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de freeBusy: https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xf...
On Tue, 2012-02-14 at 12:06 +0100, Mike Gabriel wrote:
Hi Alex, Helmer,
I have forwarded the mail for freerdp-devel, let's see if I am lucky.
I am subscribed to the list so there is a chance...Mike <snip> I hope so. This would definitely affect us so thanks very much for taking the time to fix it even though it was not an X2Go problem - John