--- a/ui/cocoa/ListDelegate.m Wed Jun 03 19:07:24 2026 +0200 +++ b/ui/cocoa/ListDelegate.m Wed Jun 03 19:58:39 2026 +0200 @@ -38,31 +38,36 @@ - (void)activateEvent:(id)sender { NSTableView *table = sender; + + int row = (int)table.clickedRow; + + UiListSelection sel; + sel.count = 1; + sel.rows = &row; + + UiEvent event; + event.obj = _obj; + event.window = event.obj->window; + event.document = event.obj->ctx->document; + event.eventdata = &sel; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; + event.intval = row; + event.set = ui_get_setop(); + if(_onactivate) { - int row = (int)table.clickedRow; - - UiListSelection sel; - sel.count = 1; - sel.rows = &row; - - UiEvent event; - event.obj = _obj; - event.window = event.obj->window; - event.document = event.obj->ctx->document; - event.eventdata = &sel; - event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; - event.intval = row; - event.set = ui_get_setop(); - _onactivate(&event, _onactivatedata); } + + if(_onselection_action) { + uic_action_callback(&event, _onselection_action.UTF8String); + } } - (void) tableViewSelectionDidChange:(NSNotification *) notification { - if(_onselection && ui_selection_events_is_enabled()) { + if(ui_selection_events_is_enabled()) { UiListSelection sel = ui_tableview_selection(_tableview); - UiEvent event; + UiEvent event; event.obj = _obj; event.window = event.obj->window; event.document = event.obj->ctx->document; @@ -70,7 +75,14 @@ event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.intval = 0; event.set = ui_get_setop(); - _onselection(&event, _onselectiondata); + + if(_onselection) { + _onselection(&event, _onselectiondata); + } + + if(_onselection_action) { + uic_action_callback(&event, _onselection_action.UTF8String); + } } }