diff -r 1f45788e0bac -r a5057a367c8f ui/cocoa/EventData.m --- a/ui/cocoa/EventData.m Mon Apr 20 21:19:13 2026 +0200 +++ b/ui/cocoa/EventData.m Tue Apr 21 10:11:44 2026 +0200 @@ -27,29 +27,38 @@ */ #import "EventData.h" +#import "action.h" #import @implementation EventData -- (EventData*)init:(ui_callback)cb userdata:(void*)userdata { +- (EventData*)init:(ui_callback)cb userdata:(void*)userdata action:(const char*)action { _callback = cb; _userdata = userdata; + if(action != nil) { + _action = [[NSString alloc]initWithUTF8String:action]; + } return self; } - (void)handleEvent:(id)sender { - if(_callback) { - UiEvent event; - event.obj = self.obj; - event.window = event.obj->window; - event.document = event.obj->ctx->document; - event.eventdata = self.data; - event.intval = self.value; - event.set = ui_get_setop(); + UiEvent event; + event.obj = self.obj; + event.window = event.obj->window; + event.document = event.obj->ctx->document; + event.eventdata = self.data; + event.intval = self.value; + event.set = ui_get_setop(); + + if(_callback != nil) { self.callback(&event, self.userdata); } + + if(_action != nil) { + uic_action_callback(&event, self.action.UTF8String); + } } - (void)handleEventWithEventData:(id)sender {