Date: Thu, 08 Mar 2001 02:03:25 +0100 From: Palle Girgensohn <girgen@partitur.se> To: Mikhail Teterin <mi@misha.privatelabs.com> Cc: will@freebsd.org, kbyanc@posi.net, ports@freebsd.org, 21048@bugs.kde.org, jwz@netscape.com, x_cbug@netscape.com, stolcke@ICSI.Berkeley.EDU, mmm@cetia.fr Subject: Re: netscape-remote breaks with the new KDE2.1 :( Message-ID: <3AA6DA5D.BF4F89FA@partitur.se> References: <200102281830.f1SIUhc68438@misha.privatelabs.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi! Has anyone found a solution to this? I just checked, and xlsclient does find communicator, but netscape -remote doesnt work, and neither does the netscape-remote port, with or without the patch below. Odd... So, I thought I'd jump to gnome and see if it was any different. Yes. xlsclient does *NOT* find communicator, but here netscape -remote does work. netscape-remote port still doesn't work, with or without patches. I'm not an X specialist, but I thought I'd share my experience here. Any success in fixing the problem? /Palle Mikhail Teterin wrote: > > Hello! > > The KDE bug #21048, that I just filed, probably, has less to do with > KDE, than with netscape-remote itself. I don't know enough about X11 > calls to be certain, however. > > The problem is, with the new KDE, attempts to use netscape -remote fail > with: > > communicator-linux-4_76_bin: root window has no children on display :0.0 > > The same problem, of course, exists for our netscape-remote. For some > reason, the root window, as reported by the horrors of > > RootWindowOfScreen (DefaultScreenOfDisplay (dpy)) > > or the simple > > DefaultRootWindow(dpy) > > is not "quite" the root window :) The later call to > > XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) > > returns the correct root window in root2. A comment in the file says: > > /* root != root2 is possible with virtual root WMs. */ > > but nothing there handles this scenario. > > Please, examine the attached patch (it incorporates the existing FreeBSD > port's files/patch-aa), which (besides silencing some compilation > warnings) makes mozilla_remote_find_window loop until the returned root2 > is the same as the given root. This is either immediately, or at the > second run (from my observations), so I did not put any provisions there > to ensure it stops after a certain number of attempts. > > Can someone explain to me, why xlsclients(1) does not need this > and always gets the root window directly from the first call to > DefaultRootWindow(dpy)? Thanks! > > -mi > > --- remote.c Sat Jun 22 00:00:00 1996 > +++ remote.c Wed Feb 28 12:52:38 2001 > @@ -45,4 +45,4 @@ > comment this line out. > - */ > #include "vroot.h" > +*/ > > @@ -83,5 +83,5 @@ > int i; > - Window root = RootWindowOfScreen (DefaultScreenOfDisplay (dpy)); > - Window root2, parent, *kids; > - unsigned int nkids; > + Window root, root2 = DefaultRootWindow(dpy); > + Window parent, *kids = NULL; > + unsigned int nkids = 0; > Window result = 0; > @@ -90,3 +90,9 @@ > > - if (! XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) > + /* root != root2 is possible with virtual root WMs. */ > + /* turns out, we need to get to the bottom -- the very top root window */ > + /* what continues to puzzle me, is that xlsclients works without this -- */ > + /* The DefaultRootWindow(dpy) always returns the right thing to it... */ > + do { > + root = root2; > + if (! XQueryTree (dpy, root, &root2, &parent, &kids, &nkids)) > { > @@ -96,4 +102,3 @@ > } > - > - /* root != root2 is possible with virtual root WMs. */ > + } while (root != root2); > > @@ -148,2 +153,6 @@ > { > +#ifndef STANDALONE > + /* no point in harassing the user when run standalone; everyone has > + * at least netscape 1.1 by now! > + */ > fprintf (stderr, > @@ -153,2 +162,3 @@ > tenative_version, (unsigned int) tenative); > +#endif > XFree (tenative_version); > @@ -350,3 +360,3 @@ > { > - int result; > + int result = -1; > Bool done = False; > @@ -509,2 +519,4 @@ > > + if(commands == NULL) return 0; > + > if (window == 0) > @@ -568,3 +580,3 @@ > > -void > +int > main (int argc, char **argv) > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-ports" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AA6DA5D.BF4F89FA>