summaryrefslogtreecommitdiff
path: root/gdk/broadway/gdkwindow-broadway.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/broadway/gdkwindow-broadway.c')
-rw-r--r--gdk/broadway/gdkwindow-broadway.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index 14f4d0367c..b8937b58b1 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -251,6 +251,7 @@ gdk_window_impl_broadway_finalize (GObject *object)
GdkWindowObject *wrapper;
GdkDrawableImplBroadway *draw_impl;
GdkWindowImplBroadway *window_impl;
+ GdkDisplayBroadway *display_broadway;
g_return_if_fail (GDK_IS_WINDOW_IMPL_BROADWAY (object));
@@ -259,6 +260,9 @@ gdk_window_impl_broadway_finalize (GObject *object)
wrapper = (GdkWindowObject*) draw_impl->wrapper;
+ display_broadway = GDK_DISPLAY_BROADWAY (gdk_window_get_display (wrapper));
+ g_hash_table_remove (display_broadway->id_ht, window_impl->id);
+
if (window_impl->cursor)
gdk_cursor_unref (window_impl->cursor);
@@ -330,6 +334,7 @@ _gdk_window_impl_new (GdkWindow *window,
impl = g_object_new (_gdk_window_impl_get_type (), NULL);
private->impl = (GdkDrawable *)impl;
impl->id = current_id++;
+ g_hash_table_insert (display_broadway->id_ht, impl->id, window);
draw_impl = GDK_DRAWABLE_IMPL_BROADWAY (impl);
draw_impl->wrapper = GDK_DRAWABLE (window);