diff -r 38a48b756d80 -r ab3125bd8b5f ui/server/container.c --- 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 #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);