ui/gtk/list.c

changeset 1016
ccde46662db7
parent 1011
18fbc36e1e70
--- a/ui/gtk/list.c	Wed Dec 17 18:31:20 2025 +0100
+++ b/ui/gtk/list.c	Thu Dec 18 17:50:15 2025 +0100
@@ -822,20 +822,19 @@
     view->selection.count = 0;
     view->selection.rows = NULL;
     
-    CX_ARRAY_DECLARE(int, newselection);
-    cx_array_initialize(newselection, 8);
-     
     size_t nitems = g_list_model_get_n_items(G_LIST_MODEL(view->liststore));
+    int *newselection = calloc(nitems, sizeof(int));
+    int selection_size = 0;
     
     for(size_t i=0;i<nitems;i++) {
         if(gtk_selection_model_is_selected(view->selectionmodel, i)) {
             int s = (int)i;
-            cx_array_simple_add(newselection, s);
+            newselection[selection_size++] = s;
         }
     }
     
-    if(newselection_size > 0) {
-        view->selection.count = newselection_size;
+    if(selection_size > 0) {
+        view->selection.count = selection_size;
         view->selection.rows = newselection;
     } else {
         free(newselection);
@@ -2234,7 +2233,7 @@
     uisublist.numitems = 0;
     uisublist.header = sublist->header ? strdup(sublist->header) : NULL;
     uisublist.separator = sublist->separator;
-    uisublist.widgets = cxLinkedListCreateSimple(CX_STORE_POINTERS);
+    uisublist.widgets = cxLinkedListCreate(NULL, CX_STORE_POINTERS);
     uisublist.listbox = uilistbox;
     uisublist.userdata = sublist->userdata;
     uisublist.index = cxListSize(sublists);
@@ -2285,7 +2284,7 @@
     uilistbox->onactivatedata = args->onactivatedata;
     uilistbox->onbuttonclick = args->onbuttonclick;
     uilistbox->onbuttonclickdata = args->onbuttonclickdata;
-    uilistbox->sublists = cxArrayListCreateSimple(sizeof(UiListBoxSubList), 4);
+    uilistbox->sublists = cxArrayListCreate(NULL, sizeof(UiListBoxSubList), 4);
     uilistbox->sublists->collection.advanced_destructor = (cx_destructor_func2)sublist_destroy;
     uilistbox->sublists->collection.destructor_data = obj;
     uilistbox->first_row = NULL;
@@ -2373,7 +2372,7 @@
     }
     
     cxListFree(uilistbox->sublists);
-    CxList *new_sublists = cxArrayListCreateSimple(sizeof(UiListBoxSubList), list->count(list));
+    CxList *new_sublists = cxArrayListCreate(NULL, sizeof(UiListBoxSubList), list->count(list));
     uilistbox->sublists = new_sublists;
     
     UiSubList *sublist = list->first(list);

mercurial