Re: GtkSocket bug ? and patch


On Fri, 25 Mar 2005 01:34:44 -0500, Havoc Pennington <hp redhat com> wrote:
> On Fri, 2005-03-25 at 13:50 +0800, KC wrote:
> > This I don't quite agree.  Look at the function prototype, it's
> >
> >    void gtk_socket_add_id (GtkSocket *socket_, GdkNativeWidnow XID);
> >
> > It implies all GdkNativeWindow should work ...
> I prefer looking at the docs ;-)
>  * gtk_socket_add_id:
>  * @socket_: a #GtkSocket
>  * @window_id: the window ID of a client participating in the XEMBED protocol.
>  *
>  * Adds an XEMBED client, such as a #GtkPlug, to the #GtkSocket.

MMMmmm ... I think I forgot to look at that ...  I trace the source code
and found gtk_socket_add_id() is in fact identical to gtk_socket_steal() ...
so I confuse myself ... what I'm talking SHOULD BE gtk_socket_steal()
instead of gtk_socket_add_id() ... that's my fault.

So my question should be replaced by:
gtk_socket_steal() can't reparent xeyes properly ...
Call XReparentWindown() couple times with XSync() might fix the problem ... as
     the patch I posted said.
But gtk_socket_steal() was deprecated .... so bad.


> > It works perfectly for gnuplot (and xeyes ^.^).  Since communication between
> > embedder (socket) and gnuplot is goes through pipe or pseudo tty, not XEMBED.
> > So, again it's the decision application should make, not toolkit.
> The app is welcome to make the decision, but it's just like an app
> deciding to use a pie chart. GTK+ doesn't have a pie chart widget. GTK+
> doesn't have an "embed random window" widget either. So you have to go
> somewhere other than GTK+ to find this code. GTK+ isn't going to stop
> you from doing so.
> Havoc

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