Re: Howto to tear a notebook page?
- From: Fritz Jetzek <fritz jetzek i-dmedia com>
- To: Hassan Aurag <aurag crm umontreal ca>
- CC: gnome-devel-list gnome org
- Subject: Re: Howto to tear a notebook page?
- Date: Tue, 29 Feb 2000 23:42:53 +0100
Hassan Aurag wrote:
>
> Hi,
>
> I was wondering if any had any ideas on how to easily implement the
> tearing of a notebook page so that it can become a top-level window.
>
> I am using pygnome so the guys on pygtk list can help me better I
> think, but in case no pygtk guys/garls have any ideas, I also sent the
> same question to gnome-devel for implementation discussion.
>
> Thanks in advance
from the gtk faq:
5.16 How do I reparent a widget?
The normal way to reparent (ie change the owner) of a widget should be
to use
the function:
void gtk_widget_reparent (GtkWidget *widget, GtkWidget *new_parent)
But this is only a "should be" since this function does not correctly do
its
job on some specific widgets. The main goal of gtk_widget_reparent() is
to
avoid unrealizing widget if both widget and new_parent are realized (in
this
case, widget->window is successfully reparented).
The problem here is that some widgets in the GTK+ hierarchy have
multiple
attached X subwindows and this is notably the case for the GtkSpinButton
widget.For those, gtk_widget_reparent() will fail by leaving an
unrealized child
window where it should not.
To avoid this problem, simply use the following code snippet:
gtk_widget_ref(widget);
gtk_container_remove(GTK_CONTAINER(old_parent), widget);
gtk_container_add(GTK_CONTAINER(new_parent), widget);
gtk_widget_unref(widget);
hope this helps,
fritz
[
Date Prev][Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]