# HG changeset patch # User Olaf Wintermann # Date 1786993233 -7200 # Node ID 9b04214d1caa3c79887a0351fea59b172f1b4eb4 # Parent cbc38a15e094936d2bcb9ac857e122f16362819f add ui_menubuilder_ref_by_obj diff -r cbc38a15e094 -r 9b04214d1caa ui/common/menu.c --- a/ui/common/menu.c Thu Aug 13 16:22:44 2026 +0200 +++ b/ui/common/menu.c Mon Aug 17 21:00:33 2026 +0200 @@ -389,3 +389,8 @@ ui_menubuilder_free(builder); } } + +void ui_menubuilder_ref_by_obj(UiMenuBuilder *builder, UiObject *obj) { + builder->ref++; + ui_reg_destructor(obj->ctx, builder, (ui_destructor_func)ui_menubuilder_unref); +} diff -r cbc38a15e094 -r 9b04214d1caa ui/ui/menu.h --- a/ui/ui/menu.h Thu Aug 13 16:22:44 2026 +0200 +++ b/ui/ui/menu.h Mon Aug 17 21:00:33 2026 +0200 @@ -105,6 +105,7 @@ UIEXPORT void ui_contextmenu_builder(UiMenuBuilder **out_builder); UIEXPORT void ui_menubuilder_ref(UiMenuBuilder *builder); UIEXPORT void ui_menubuilder_unref(UiMenuBuilder *builder); +UIEXPORT void ui_menubuilder_ref_by_obj(UiMenuBuilder *builder, UiObject *obj); UIEXPORT UIMENU ui_contextmenu_create(UiMenuBuilder *builder, UiObject *obj, UIWIDGET widget); UIEXPORT void ui_contextmenu_popup(UIMENU menu, UIWIDGET widget, int x, int y);