From a94651c612fbcfef99f09d9440b1272d42dd6d13 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Tue, 20 Jan 2026 19:15:05 +0300 Subject: [PATCH] `Image`: dispatch `load` event when `src` set --- src/browser/webapi/element/html/Image.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/browser/webapi/element/html/Image.zig b/src/browser/webapi/element/html/Image.zig index 8846d0c6..2e120ae9 100644 --- a/src/browser/webapi/element/html/Image.zig +++ b/src/browser/webapi/element/html/Image.zig @@ -5,6 +5,7 @@ const URL = @import("../../../URL.zig"); const Node = @import("../../Node.zig"); const Element = @import("../../Element.zig"); const HtmlElement = @import("../Html.zig"); +const Event = @import("../../Event.zig"); const Image = @This(); _proto: *HtmlElement, @@ -47,6 +48,13 @@ pub fn getSrc(self: *const Image, page: *Page) ![]const u8 { pub fn setSrc(self: *Image, value: []const u8, page: *Page) !void { try self.asElement().setAttributeSafe("src", value, page); + + // We don't actually fetch the media, here we fake the load call. + const event_target = self.asNode().asEventTarget(); + if (page._event_manager.hasListener(event_target, "load")) { + const event = try Event.initTrusted("load", .{}, page); + return page._event_manager.dispatch(event_target, event); + } } pub fn getAlt(self: *const Image) []const u8 {