Re: GtkSocket bug ? and patch



Hi,


On Thu, 24 Mar 2005 07:49:23 -0500, Owen Taylor <otaylor redhat com> wrote:
> On Thu, 2005-03-24 at 18:43 +0800, KC wrote:
> > Hi,
> >
> > Let me describe the problem first.  I wrote a simple test program,
> > gdk_socket_add_id.c, and try to steal a legacy X app., xeyes.
> >
> > I'm using Fedora Core 2 (with gtk+-2.4.14).  The procedure is as
> > following:
> >
> > > xeyes & <CR>
> > > xwininfo <CR> ..... then click on xeyes, I get WID, eg 0x2c00007.
> > > gdk_socket_add_id 0x2c00007 <CR>
> >
> > The result is two windows instead of one (xeyes embedded in embedder),
> > but xeyes will resize if I resize the embedder.  Looks like xeyes
> > does been controlled by embedder ... but reparent is not working.
> 
> plug/socket is not designed for stealing, which is impossible to get
> entirely right. It's designed for a pair of a cooperating embedder
> (GtkSocket, say) and client (GtkPlug) speaking the XEMBED protocol.
> 
> Regards,
>                                                 Owen
> 

I agree.  As far as I know, GtkSocket/GtkPlug are been used a lot in Bonoboo
and probably designed for Bonoboo (this I'm not sure).
However, the problem I mentioned did not related to both GtkSocket/GtkPlug,
it's X reparent problem.  I just want to know if the patch I posted worthy to
apply or does XReparentWindow() do have such problem for some window
managers.

And IMHO, although GtkSocket/GtkPlug may not design for kidnapping legacy
X applications ... it does work fine for such purpose.   Specially, when using
such trick for text based interactive utilities such as gnuplot, GNU
Octave, Maxima ... etc
most of them don't know what's XEmbed protocal ... but they do worth
to kidnap :-)


Regards,
KC



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]