ui/gtk/tree.c

changeset 152
62921b370c60
parent 151
11f3bb408051
child 163
b70e2a77dea0
--- a/ui/gtk/tree.c	Wed Nov 22 12:59:13 2017 +0100
+++ b/ui/gtk/tree.c	Sun Jan 21 12:13:09 2018 +0100
@@ -368,10 +368,19 @@
     UiListView *view = list->obj;
     UiListModel *model = ui_list_model_new(view->obj, view->var, view->model);
     gtk_tree_view_set_model(GTK_TREE_VIEW(view->widget), GTK_TREE_MODEL(model));
+    g_object_unref(G_OBJECT(model));
     // TODO: free old model
 }
 
 void ui_listview_destroy(GtkWidget *w, UiListView *v) {
+    gtk_tree_view_set_model(GTK_TREE_VIEW(w), NULL);
+    ui_destroy_boundvar(v->obj->ctx, v->var);
+    // TODO: destroy model?
+    free(v);
+}
+
+void ui_combobox_destroy(GtkWidget *w, UiListView *v) {
+    gtk_combo_box_set_model(GTK_COMBO_BOX(w), NULL);
     ui_destroy_boundvar(v->obj->ctx, v->var);
     // TODO: destroy model?
     free(v);
@@ -498,7 +507,7 @@
     g_signal_connect(
                 combobox,
                 "destroy",
-                G_CALLBACK(ui_listview_destroy),
+                G_CALLBACK(ui_combobox_destroy),
                 uicbox);
     
     // bind var

mercurial