Re: GtkPlug issue ...
- From: Owen Taylor <otaylor redhat com>
- To: Michael Meeks <michael ximian com>
- Cc: <gtk-devel-list gnome org>
- Subject: Re: GtkPlug issue ...
- Date: 24 Oct 2001 10:17:01 -0400
Owen Taylor <otaylor redhat com> writes:
> One possibility is to simply to make native children of a foreign
> window have ->parent set to the root window GdkWindow. Reasons
> for this:
>
> * We don't know all children of the foreign window.
>
> * It's pretty normal for children of foreign windows to be
> reparented without our knowledge. In fact, a ReparentNotify
> for such a situation is what triggered the above backtrace!
>
> I don't want to have to track this in GDK.
>
> * If the foreign GdkWindow is created after the local child,
> the ->children pointer won't be correct.
>
> The ->children pointer for a foreign window really isn't
> interesting because it isn't reliably correct.
>
> * It corresponds to the idea that a GtkSocket is like a window
> manager frame. Typically windows with ->parent == GDK_PARENT_ROOT()
> actually have the window manager frames as their real
> X parent.
>
> The other possibility would be to, as you suggest, to make
> _gdk_window_destroy_heirarchy() clean up the parent pointers
> for the children of a foreign window.
>
> I think the former is better; I'll look at implementing the
> invariant:
>
> GDK_WINDOW_TYPE (window->parent) != GDK_WINDOW_FOREIGN
Could you test that the change I just checked in:
Tue Oct 23 17:31:42 2001 Owen Taylor <otaylor redhat com>
* gdk/x11/gdkwindow-x11.c gdk/win32/gdkwindow-win32.c: Always
set window->parent (except or the root window itself); if
the window's parent is not a GdkWindow, or is a window of
type GDK_WINDOW_FOREIGN, set window->parent to the root parent.
* gdk/gdkwindow.c (gdk_window_get_toplevels): Don't include
windows of type GDK_WINDOW_FOREIGN.
fixes the problem for you?
Thanks,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]