From 0fbf48ab4d2c2c3514298774c61461844395983e Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Mon, 7 Apr 2025 16:36:06 +0800 Subject: [PATCH] actually dispatch click --- src/browser/browser.zig | 3 ++- src/netsurf/netsurf.zig | 15 +++------------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/browser/browser.zig b/src/browser/browser.zig index 14d85df1..743aaf6c 100644 --- a/src/browser/browser.zig +++ b/src/browser/browser.zig @@ -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; } diff --git a/src/netsurf/netsurf.zig b/src/netsurf/netsurf.zig index 109c547f..92c0bbea 100644 --- a/src/netsurf/netsurf.zig +++ b/src/netsurf/netsurf.zig @@ -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 {