fix invisible child widgets in listbox row update (GTK3)

Sun, 28 Dec 2025 15:38:50 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 28 Dec 2025 15:38:50 +0100
changeset 1030
1f6caf5b60fb
parent 1029
0b3b2b650bd7
child 1031
8f72e54b423e

fix invisible child widgets in listbox row update (GTK3)

ui/gtk/list.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.h file | annotate | diff | comparison | revisions
--- a/ui/gtk/list.c	Sat Dec 27 22:35:49 2025 +0100
+++ b/ui/gtk/list.c	Sun Dec 28 15:38:50 2025 +0100
@@ -2620,6 +2620,7 @@
     LISTBOX_ROW_REMOVE_CHILD(row);
     
     listbox_fill_row(listbox, GTK_WIDGET(row), sublist, &item, index);
+    LISTBOX_ROW_SHOW(row);
     
      // cleanup
     free(item.label);
@@ -2756,6 +2757,7 @@
 #endif
         
         listbox_fill_row(listbox, row, sublist, &item, index);
+        LISTBOX_ROW_SHOW(row);
         if(index == first_index) {
             // first row in the sublist, set ui_listbox data to the row
             // which is then used by the headerfunc
--- a/ui/gtk/toolkit.h	Sat Dec 27 22:35:49 2025 +0100
+++ b/ui/gtk/toolkit.h	Sun Dec 28 15:38:50 2025 +0100
@@ -75,6 +75,7 @@
 #define LISTBOX_REMOVE(listbox, row) gtk_list_box_remove(GTK_LIST_BOX(listbox), row)
 #define LISTBOX_ROW_SET_CHILD(row, child) gtk_list_box_row_set_child(GTK_LIST_BOX_ROW(row), child)
 #define LISTBOX_ROW_REMOVE_CHILD(row) gtk_list_box_row_set_child(GTK_LIST_BOX_ROW(row), NULL)
+#define LISTBOX_ROW_SHOW(row) 
 #define PANED_SET_CHILD1(paned, child) gtk_paned_set_start_child(GTK_PANED(paned), child)
 #define PANED_SET_CHILD2(paned, child) gtk_paned_set_end_child(GTK_PANED(paned), child)
 #else
@@ -98,6 +99,7 @@
 #define LISTBOX_REMOVE(listbox, row) gtk_container_remove(GTK_CONTAINER(listbox), row)
 #define LISTBOX_ROW_SET_CHILD(row, child) gtk_container_add(GTK_CONTAINER(row), child)
 #define LISTBOX_ROW_REMOVE_CHILD(row) gtk_container_remove(GTK_CONTAINER(row), gtk_bin_get_child(GTK_BIN(row)))
+#define LISTBOX_ROW_SHOW(row) gtk_widget_show_all(GTK_WIDGET(row))
 #define PANED_SET_CHILD1(paned, child) gtk_paned_pack1(GTK_PANED(paned), child, TRUE, TRUE)
 #define PANED_SET_CHILD2(paned, child) gtk_paned_pack2(GTK_PANED(paned), child, TRUE, TRUE)
 #endif

mercurial