--- a/ui/gtk/menu.c Sun Aug 24 15:24:16 2025 +0200 +++ b/ui/gtk/menu.c Sat Oct 04 14:52:59 2025 +0200 @@ -576,8 +576,12 @@ ls->oldcount = 0; ls->getvalue = il->getvalue; - //UiVar* var = uic_create_var(ui_global_context(), il->varname, UI_VAR_LIST); - UiVar* var = uic_create_var(obj->ctx, il->varname, UI_VAR_LIST); + GSimpleAction *action = g_simple_action_new(item->id, g_variant_type_new("i")); + g_action_map_add_action(obj->ctx->action_map, G_ACTION(action)); + snprintf(ls->action, 32, "win.%s", item->id); + + UiVar* var = uic_create_var(ui_global_context(), il->varname, UI_VAR_LIST); + //UiVar* var = uic_create_var(obj->ctx, il->varname, UI_VAR_LIST); ls->var = var; if(var) { UiList *list = var->value; @@ -604,10 +608,6 @@ ls->callback = il->callback; ls->userdata = il->userdata; - GSimpleAction *action = g_simple_action_new(item->id, g_variant_type_new("i")); - g_action_map_add_action(obj->ctx->action_map, G_ACTION(action)); - snprintf(ls->action, 32, "win.%s", item->id); - UiEventData *event = malloc(sizeof(UiEventData)); event->obj = obj; @@ -650,6 +650,10 @@ UiVar *var = event->customdata; UiList *list = var->value; + if(!event->callback) { + return; + } + UiEvent evt; evt.obj = event->obj; evt.window = event->obj->window;