Skip to content

Commit a51c200

Browse files
committed
netsurf: handle event target get type
1 parent 99a3e4b commit a51c200

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/netsurf/netsurf.zig

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,11 @@ fn eventListenerGetData(lst: *EventListener) ?*anyopaque {
560560
}
561561

562562
// EventTarget
563+
pub const EventTargetType = enum(u4) {
564+
node = c.DOM_EVENT_TARGET_NODE,
565+
window = 2,
566+
};
567+
563568
pub const EventTarget = c.dom_event_target;
564569

565570
pub fn eventTargetToNode(et: *EventTarget) *Node {
@@ -801,6 +806,14 @@ pub fn eventTargetDispatchEvent(et: *EventTarget, event: *Event) !bool {
801806
return res;
802807
}
803808

809+
pub fn eventTargetGetType(et: *EventTarget) !EventTargetType {
810+
var res: c.dom_event_target_type = undefined;
811+
const err = eventTargetVtable(et).dom_event_target_get_type.?(et, &res);
812+
try DOMErr(err);
813+
814+
return @enumFromInt(res);
815+
}
816+
804817
pub fn eventTargetTBaseFieldName(comptime T: type) ?[]const u8 {
805818
std.debug.assert(@inComptime());
806819
switch (@typeInfo(T)) {
@@ -824,8 +837,10 @@ pub const EventTargetTBase = extern struct {
824837
.remove_event_listener = remove_event_listener,
825838
.add_event_listener = add_event_listener,
826839
.iter_event_listener = iter_event_listener,
840+
.dom_event_target_get_type = dom_event_target_get_type,
827841
},
828842
eti: c.dom_event_target_internal = c.dom_event_target_internal{ .listeners = null },
843+
et_type: c.dom_event_target_type = @intFromEnum(EventTargetType.node),
829844

830845
pub fn add_event_listener(et: [*c]c.dom_event_target, t: [*c]c.dom_string, l: ?*c.struct_dom_event_listener, capture: bool) callconv(.C) c.dom_exception {
831846
const self = @as(*Self, @ptrCast(et));
@@ -858,6 +873,17 @@ pub const EventTargetTBase = extern struct {
858873
const self = @as(*Self, @ptrCast(et));
859874
return c._dom_event_target_iter_event_listener(self.eti, t, capture, cur, next, l);
860875
}
876+
877+
pub fn dom_event_target_get_type(
878+
et: [*c]c.dom_event_target,
879+
res: [*c]c.dom_event_target_type,
880+
) callconv(.C) c.dom_exception {
881+
const self = @as(*Self, @ptrCast(et));
882+
883+
res.* = self.et_type;
884+
885+
return c.DOM_NO_ERR;
886+
}
861887
};
862888

863889
// NodeType

0 commit comments

Comments
 (0)