GTKColumnView / Sorter no works

That was only one of a few changes I suggested you make. Here’s a diff between your version and mine:

--- columnviewsort-orig.c	2025-01-30 14:03:26.307045990 -0500
+++ columnviewsort.c	2025-01-30 14:17:25.393898713 -0500
@@ -1,3 +1,4 @@
+#include <glib/gprintf.h>
 #include <gtk/gtk.h>
 
 void object_free(gpointer data)
@@ -51,14 +52,14 @@
     gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrolled_window), column_view);
 
     // Erstellen des Sortierers für die ColumnView
-    GtkSorter *view_sorter = gtk_column_view_get_sorter(GTK_COLUMN_VIEW(column_view));
+    GtkSorter *view_sorter = g_object_ref (gtk_column_view_get_sorter(GTK_COLUMN_VIEW(column_view)));
     GListStore* store = g_list_store_new(G_TYPE_OBJECT);
     GtkSortListModel *sort_model = gtk_sort_list_model_new(G_LIST_MODEL(store), view_sorter);
     GtkSelectionModel* selection_model = GTK_SELECTION_MODEL(gtk_single_selection_new(G_LIST_MODEL(sort_model)));
-    g_object_unref(view_sorter);
 
 
     gtk_column_view_set_model(GTK_COLUMN_VIEW(column_view), selection_model);
+    g_object_unref(selection_model);
 
     const char* column_titles[] = {"Number 1", "Number 2", "Number 3"};
     for (int i = 0; i < 3; i++) {
@@ -80,7 +81,6 @@
     add_item(store);
     add_item(store);
 
-    g_list_store_remove(store, 1); // free io.
 
     gtk_window_present(GTK_WINDOW(window));
 }

With that, I get 12 "free object"s printed upon closing the window.

2 Likes