--- a/ui/common/action.c Sun Jun 07 17:43:15 2026 +0200 +++ b/ui/common/action.c Sun Jun 07 19:56:21 2026 +0200 @@ -180,7 +180,7 @@ return ret; } -static void call_action_recursive(const char *action_name, UiContext *ctx, void *eventdata, UiEventType eventdatatype, int intval) { +static void call_action_recursive(const char *action_name, UiContext *ctx, void *eventdata, UiEventType eventdatatype, int intval, UiBool call_children) { UiEvent event; memset(&event, 0, sizeof(UiEvent)); event.obj = ctx->obj; @@ -200,10 +200,12 @@ a->callback(&event, a->userdata); } - CxIterator i = cxListIterator(ctx->documents); - cx_foreach(void *, doc, i) { - UiContext *doc_ctx = ui_document_context(doc); - call_action_recursive(action_name, doc_ctx, eventdata, eventdatatype, intval); + if(call_children) { + CxIterator i = cxListIterator(ctx->documents); + cx_foreach(void *, doc, i) { + UiContext *doc_ctx = ui_document_context(doc); + call_action_recursive(action_name, doc_ctx, eventdata, eventdatatype, intval, TRUE); + } } } @@ -211,8 +213,10 @@ CxList *objects = uic_object_list(); CxIterator i = cxListIterator(objects); cx_foreach(UiObject*, obj, i) { - call_action_recursive(action_name, obj->ctx, eventdata, eventdatatype, intval); + call_action_recursive(action_name, obj->ctx, eventdata, eventdatatype, intval, TRUE); } + + call_action_recursive(action_name, ui_global_context(), eventdata, eventdatatype, intval, FALSE); } void ui_broadcast_action(const char *action_name) {