# HG changeset patch # User Olaf Wintermann # Date 1780854981 -7200 # Node ID 2436f03c8aca2960d5ec69810cb2c75699183fcf # Parent 51c0e1053592f1785b93098af2056a0004ac8385 send broadcast actions also to the global context diff -r 51c0e1053592 -r 2436f03c8aca ui/common/action.c --- 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) {