--- a/ui/gtk/menu.c Wed Oct 15 18:08:43 2025 +0200 +++ b/ui/gtk/menu.c Wed Oct 15 18:50:52 2025 +0200 @@ -507,11 +507,16 @@ } static void ui_action_set_state(UiInteger *i, int64_t value) { - + UiMenuRadioGroup *group = i->obj; + i->value = value; + char buf[32]; + snprintf(buf, 32, "%d", (int)value); + GVariant *state = g_variant_new_string(buf); + g_action_change_state(G_ACTION(group->action), state); } static int64_t ui_action_get_state(UiInteger *i) { - return 0; + return i->value; } static UiMenuRadioGroup* create_radio_group(UiObject *obj, UiMenuRadioItem *item, GSimpleAction *action) { @@ -564,7 +569,7 @@ event.eventdata = NULL; event.eventdatatype = 0; event.intval = v; - event.set = 0; + event.set = ui_get_setop(); CxIterator iter = cxListIterator(group->callbacks); cx_foreach(UiCallbackData *, cb, iter) {