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(); const event = try parser.mouseEventCreate();
defer parser.mouseEventDestroy(event); defer parser.mouseEventDestroy(event);
try parser.mouseEventInit(event, "click", .{ try parser.mouseEventInit(event, "click", .{
.bubbles = true, .bubbles = true,
.cancelable = true, .cancelable = true,
.x = me.x, .x = me.x,
.y = me.y, .y = me.y,
}); });
_ = try parser.elementDispatchEvent(element, @ptrCast(event));
if ((try parser.mouseEventDefaultPrevented(event)) == true) { if ((try parser.mouseEventDefaultPrevented(event)) == true) {
return null; return null;
} }

View File

@@ -802,18 +802,9 @@ pub fn eventTargetDispatchEvent(et: *EventTarget, event: *Event) !bool {
return res; return res;
} }
const DispatchOpts = struct { pub fn elementDispatchEvent(element: *Element, event: *Event) !bool {
type: []const u8, const et: *EventTarget = toEventTarget(Element, element);
bubbles: bool = true, return eventTargetDispatchEvent(et, @ptrCast(event));
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 eventTargetTBaseFieldName(comptime T: type) ?[]const u8 { pub fn eventTargetTBaseFieldName(comptime T: type) ?[]const u8 {