Skip to content

Commit 48344bc

Browse files
committed
feat(gui): unwrap() will fire the link and unlink events for each child
1 parent f7ed3b8 commit 48344bc

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/gui/widget_tree.c

+7-1
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ int Widget_Unwrap(LCUI_Widget widget)
104104
{
105105
size_t len;
106106
LCUI_Widget child;
107+
LCUI_WidgetEventRec ev = { 0 };
107108
LinkedList *children;
108109
LinkedListNode *target, *node, *prev;
109110

@@ -121,14 +122,19 @@ int Widget_Unwrap(LCUI_Widget widget)
121122
node = &widget->node;
122123
target = node->prev;
123124
node = widget->children.tail.prev;
125+
ev.cancel_bubble = TRUE;
124126
while (len > 0) {
125127
assert(node != NULL);
126128
assert(node->data != NULL);
127129
prev = node->prev;
128130
child = node->data;
131+
ev.type = LCUI_WEVENT_UNLINK;
132+
Widget_TriggerEvent(child, &ev, NULL);
129133
LinkedList_Unlink(&widget->children, node);
130-
child->parent = widget->parent;
131134
LinkedList_Link(children, target, node);
135+
child->parent = widget->parent;
136+
ev.type = LCUI_WEVENT_LINK;
137+
Widget_TriggerEvent(child, &ev, NULL);
132138
Widget_AddTaskForChildren(child, LCUI_WTASK_REFRESH_STYLE);
133139
Widget_UpdateTaskStatus(child);
134140
node = prev;

0 commit comments

Comments
 (0)