diff options
author | Alexander Larsson <alexl@redhat.com> | 2013-02-05 09:36:49 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2013-02-07 11:11:37 +0100 |
commit | 3d4cd4db3ed9f6c47566a69d745441e2662ac2ab (patch) | |
tree | ea187ad53de4aa570e53449b674507022d47d1ee /gtk/gtkoverlay.c | |
parent | 4d3c77f9200dbdfa71e2aaa390d11e88099b5c6e (diff) | |
download | gtk+-3d4cd4db3ed9f6c47566a69d745441e2662ac2ab.tar.gz |
Add gtk_widget_(un)register_window
This replaces the previously hardcoded calls to gdk_window_set_user_data,
and also lets us track which windows are a part of a widget. Old code
should continue working as is, but new features that require the
windows may not work perfectly.
We need this for the transparent widget support to work, as we need
to specially mark the windows of child widgets.
https://bugzilla.gnome.org/show_bug.cgi?id=687842
Diffstat (limited to 'gtk/gtkoverlay.c')
-rw-r--r-- | gtk/gtkoverlay.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gtk/gtkoverlay.c b/gtk/gtkoverlay.c index a66ede8dc6..de80637d07 100644 --- a/gtk/gtkoverlay.c +++ b/gtk/gtkoverlay.c @@ -105,7 +105,7 @@ gtk_overlay_create_child_window (GtkOverlay *overlay, window = gdk_window_new (gtk_widget_get_window (widget), &attributes, attributes_mask); - gdk_window_set_user_data (window, overlay); + gtk_widget_register_window (widget, window); gtk_style_context_set_background (gtk_widget_get_style_context (widget), window); gtk_widget_set_parent_window (child, window); @@ -443,7 +443,7 @@ gtk_overlay_unrealize (GtkWidget *widget) child = children->data; gtk_widget_set_parent_window (child->widget, NULL); - gdk_window_set_user_data (child->window, NULL); + gtk_widget_unregister_window (widget, child->window); gdk_window_destroy (child->window); child->window = NULL; } @@ -539,7 +539,7 @@ gtk_overlay_remove (GtkContainer *container, { if (child->window != NULL) { - gdk_window_set_user_data (child->window, NULL); + gtk_widget_unregister_window (GTK_WIDGET (container), child->window); gdk_window_destroy (child->window); } |