merge

Tue, 13 May 2025 20:22:44 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 13 May 2025 20:22:44 +0200
changeset 592
c69a71927d9c
parent 591
637de2359995 (diff)
parent 590
07ecff1fa805 (current diff)
child 593
7061c9cf3b52

merge

--- a/ui/gtk/list.c	Sun May 11 18:56:49 2025 +0200
+++ b/ui/gtk/list.c	Tue May 13 20:22:44 2025 +0200
@@ -1810,7 +1810,7 @@
             list->obj = uilistbox;
             list->update = ui_listbox_dynamic_update;
             
-            ui_listbox_dynamic_update(list, 0);
+            ui_listbox_dynamic_update(list, -1);
         }
     }
     
@@ -1843,6 +1843,15 @@
     // unbind/free previous list vars
     CxIterator i = cxListIterator(uilistbox->sublists);
     cx_foreach(UiListBoxSubList *, s, i) {
+        // TODO: "unbind/free previous list vars" will also remove
+        //       the widget list. This makes the widget optimization 
+        //       in ui_listbox_update_sublist pointless
+        //       Is it actually possible to not recreate the whole list?
+        CxIterator r = cxListIterator(s->widgets);
+        cx_foreach(GtkWidget*, widget, r) {
+            LISTBOX_REMOVE(uilistbox->listbox, widget);
+        }
+        
         if(s->var) {
             UiList *sl = s->var->value;
             sl->obj = NULL;

mercurial