diff -r 5be43605226f -r 8d30cbd1c465 ui/gtk/menu.c --- a/ui/gtk/menu.c Mon Nov 03 21:10:39 2025 +0100 +++ b/ui/gtk/menu.c Tue Nov 04 20:38:19 2025 +0100 @@ -284,6 +284,7 @@ event->callback = list->callback; event->value = i - 1; event->customdata = elm; + event->customint = UI_EVENT_DATA_LIST_ELM; g_signal_connect( widget, @@ -309,9 +310,17 @@ evt.obj = event->obj; evt.window = event->obj->window; evt.document = event->obj->ctx->document; + if(event->customdata) { + evt.eventdata = event->customdata; + evt.eventdatatype = event->customint; + } else { + evt.eventdata = uic_get_tmp_eventdata(); + evt.eventdatatype = uic_get_tmp_eventdata_type(); + } evt.eventdata = event->customdata; evt.intval = event->value; - event->callback(&evt, event->userdata); + event->callback(&evt, event->userdata); + uic_set_tmp_eventdata(NULL, 0); } void ui_menu_event_toggled(GtkCheckMenuItem *ci, UiEventData *event) { @@ -747,10 +756,16 @@ evt.obj = event->obj; evt.window = event->obj->window; evt.document = event->obj->ctx->document; - evt.eventdata = event->customdata; - evt.eventdatatype = event->customint; + if(event->customdata) { + evt.eventdata = event->customdata; + evt.eventdatatype = event->customint; + } else { + evt.eventdata = uic_get_tmp_eventdata(); + evt.eventdatatype = uic_get_tmp_eventdata_type(); + } evt.intval = intval; - event->callback(&evt, event->userdata); + event->callback(&evt, event->userdata); + uic_set_tmp_eventdata(NULL, 0); } void ui_menu_list_item_activate_event_wrapper(GSimpleAction* self, GVariant* parameter, UiEventData *event) {