Tue, 19 May 2026 18:31:16 +0200
add ui_remove_destructor
| ui/common/context.c | file | annotate | diff | comparison | revisions | |
| ui/common/context.h | file | annotate | diff | comparison | revisions |
--- a/ui/common/context.c Tue May 19 18:25:53 2026 +0200 +++ b/ui/common/context.c Tue May 19 18:31:16 2026 +0200 @@ -97,6 +97,15 @@ cxListAdd(ctx->destroy_handler, &handler); } +void uic_context_remove_destructor(UiContext *ctx, void *data) { + CxIterator i = cxListIterator(ctx->destroy_handler); + cx_foreach(UiDestroyHandler *, handler, i) { + if(handler->data == data) { + cxIteratorFlagRemoval(i); + } + } +} + void uic_context_prepare_close(UiContext *ctx) { cxListClear(ctx->states); cxListClear(ctx->state_widgets); @@ -733,6 +742,10 @@ uic_context_add_destructor(ctx, destr, data); } +void ui_remove_destructor(UiContext *ctx, void *data) { + uic_context_remove_destructor(ctx, data); +} + void ui_set_destructor(void *mem, ui_destructor_func destr) { cxMempoolSetDestructor(mem, (cx_destructor_func)destr); }
--- a/ui/common/context.h Tue May 19 18:25:53 2026 +0200 +++ b/ui/common/context.h Tue May 19 18:31:16 2026 +0200 @@ -134,6 +134,7 @@ UiContext* uic_context(UiObject *toplevel, CxMempool *mp); UiContext* uic_root_context(UiContext *ctx); void uic_context_add_destructor(UiContext *ctx, cx_destructor_func func, void *data); +void uic_context_remove_destructor(UiContext *ctx, void *data); void uic_context_prepare_close(UiContext *ctx); void uic_context_destroy(UiContext *ctx, void *document);