actually dispatch click

This commit is contained in:
Karl Seguin
2025-04-07 16:36:06 +08:00
parent f38a0d2d67
commit 0fbf48ab4d
2 changed files with 5 additions and 13 deletions

View File

@@ -451,13 +451,14 @@ pub const Page = struct {
const event = try parser.mouseEventCreate();
defer parser.mouseEventDestroy(event);
try parser.mouseEventInit(event, "click", .{
.bubbles = true,
.cancelable = true,
.x = me.x,
.y = me.y,
});
_ = try parser.elementDispatchEvent(element, @ptrCast(event));
if ((try parser.mouseEventDefaultPrevented(event)) == true) {
return null;
}

View File

@@ -802,18 +802,9 @@ pub fn eventTargetDispatchEvent(et: *EventTarget, event: *Event) !bool {
return res;
}
const DispatchOpts = struct {
type: []const u8,
bubbles: bool = true,
cancelable: bool = true,
};
pub fn elementDispatchEvent(element: *Element, opts: DispatchOpts) !bool {
const event = try eventCreate();
defer eventDestroy(event);
try eventInit(event, opts.type, .{ .bubbles = opts.bubbles, .cancelable = opts.cancelable });
const et: *EventTarget = @ptrCast(element);
return eventTargetDispatchEvent(et, event);
pub fn elementDispatchEvent(element: *Element, event: *Event) !bool {
const et: *EventTarget = toEventTarget(Element, element);
return eventTargetDispatchEvent(et, @ptrCast(event));
}
pub fn eventTargetTBaseFieldName(comptime T: type) ?[]const u8 {