ui/server/container.c

changeset 991
ab3125bd8b5f
parent 990
38a48b756d80
--- a/ui/server/container.c	Fri Dec 12 11:38:47 2025 +0100
+++ b/ui/server/container.c	Fri Dec 12 12:00:34 2025 +0100
@@ -30,6 +30,7 @@
 #include <cx/buffer.h>
 
 #include "container.h"
+#include "widget.h"
 #include "args.h"
 
 void ui_container_begin_close(UiObject *obj) {
@@ -80,12 +81,13 @@
     widget->args = ui_container_args_to_string(obj->ctx, args);
     widget->children = cxLinkedListCreate(a, NULL, CX_STORE_POINTERS);
     widget->serialize = ui_container_serialize;
-    uic_object_push_container(obj, ui_widget_container(widget));
-    ui_reg_widget((UiWidget*)widget);
     
     UiWidget *parent = obj->container_end->container;
     cxListAdd(parent->children, widget); 
     
+    uic_object_push_container(obj, ui_widget_container(widget));
+    ui_reg_widget((UiWidget*)widget);
+    
     return widget;
 }
 
@@ -109,15 +111,10 @@
     CxBuffer buf;
     cxBufferInit(&buf, NULL, 1024, NULL, CX_BUFFER_AUTO_EXTEND | CX_BUFFER_FREE_CONTENTS);
     
-    cxBufferPutString(&buf, "{\"type\":\"");
-    cxBufferPutString(&buf, w->type.ptr);
-    cxBufferPutString(&buf, "\",\"args\":\"");
+    cxBufferPutString(&buf, "{");
+    ui_serialize_type_obj_id(w, &buf);
+    cxBufferPutString(&buf, ",\"args\":");
     cxBufferPutString(&buf, w->args.ptr);
-    cxBufferPutString(&buf, "\",\"obj\":");
-    cxBufferPutString(&buf, w->obj->id.ptr);
-    cxBufferPutString(&buf, "\",\"id\":");
-    cxBufferPutString(&buf, w->id.ptr);
-    cxBufferPutString(&buf, "\"");
     
     ui_serialize_children(w, &buf);
     

mercurial