# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1614757128 0 # Node ID 1a630cddf38487bc558aba635b8d7c8a580576a4 # Parent d797d1cec06be294d692c5055c8cddc52b90aa3f GTK4: Remove render widgets from the dirty list when they are destroyed. diff -r d797d1cec06b -r 1a630cddf384 gtk4/dw.c --- a/gtk4/dw.c Wed Mar 03 03:59:20 2021 +0000 +++ b/gtk4/dw.c Wed Mar 03 07:38:48 2021 +0000 @@ -6357,6 +6357,12 @@ /* TODO: Removed in GTK4.... no replacement? */ } +/* Make sure the widget is out of the dirty list if it is destroyed */ +static void _dw_render_destroy(GtkWidget *widget, gpointer data) +{ + _dw_dirty_list = g_list_remove(_dw_dirty_list, widget); +} + /* * Creates a rendering context widget (window) to be packed. * Parameters: @@ -6371,6 +6377,7 @@ { GtkWidget *tmp = gtk_drawing_area_new(); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); + g_signal_connect(G_OBJECT(tmp), "destroy", G_CALLBACK(_dw_render_destroy), NULL); gtk_widget_set_can_focus(tmp, TRUE); gtk_widget_show(tmp); if(_DWDefaultFont)