Skip to content

Commit cf39bdc

Browse files
committed
use inputGetType and add buttonGetType
1 parent 34b4949 commit cf39bdc

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

src/browser/netsurf.zig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2834,3 +2834,11 @@ pub fn inputSetValue(input: *Input, value: []const u8) !void {
28342834
const err = c.dom_html_input_element_set_value(input, try strFromData(value));
28352835
try DOMErr(err);
28362836
}
2837+
2838+
pub fn buttonGetType(button: *Button) ![]const u8 {
2839+
var s_: ?*String = null;
2840+
const err = c.dom_html_button_element_get_type(button, &s_);
2841+
try DOMErr(err);
2842+
const s = s_ orelse return "button";
2843+
return strToData(s);
2844+
}

src/browser/page.zig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -582,14 +582,14 @@ pub const Page = struct {
582582
},
583583
.input => {
584584
const element: *parser.Element = @ptrCast(node);
585-
const input_type = (try parser.elementGetAttribute(element, "type")) orelse return;
585+
const input_type = try parser.inputGetType(@ptrCast(element));
586586
if (std.ascii.eqlIgnoreCase(input_type, "submit")) {
587587
return self.elementSubmitForm(element);
588588
}
589589
},
590590
.button => {
591591
const element: *parser.Element = @ptrCast(node);
592-
const button_type = (try parser.elementGetAttribute(element, "type")) orelse return;
592+
const button_type = try parser.buttonGetType(@ptrCast(element));
593593
if (std.ascii.eqlIgnoreCase(button_type, "submit")) {
594594
return self.elementSubmitForm(element);
595595
}
@@ -661,7 +661,7 @@ pub const Page = struct {
661661
switch (tag) {
662662
.input => {
663663
const element: *parser.Element = @ptrCast(node);
664-
const input_type = (try parser.elementGetAttribute(element, "type")) orelse "text";
664+
const input_type = try parser.inputGetType(@ptrCast(element));
665665
if (std.mem.eql(u8, input_type, "text")) {
666666
if (std.mem.eql(u8, new_key, "Enter")) {
667667
const form = (try self.formForElement(element)) orelse return;

src/browser/xhr/form_data.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ fn collectForm(form: *parser.Form, submitter_: ?*parser.ElementHTML, page: *Page
137137
const tag = try parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(element)));
138138
switch (tag) {
139139
.input => {
140-
const tpe = try parser.elementGetAttribute(element, "type") orelse "";
140+
const tpe = try parser.inputGetType(@ptrCast(element));
141141
if (std.ascii.eqlIgnoreCase(tpe, "image")) {
142142
if (submitter_name_) |submitter_name| {
143143
if (std.mem.eql(u8, submitter_name, name)) {
@@ -249,7 +249,7 @@ fn getSubmitterName(submitter_: ?*parser.ElementHTML) !?[]const u8 {
249249
switch (tag) {
250250
.button => return name,
251251
.input => {
252-
const tpe = (try parser.elementGetAttribute(element, "type")) orelse "";
252+
const tpe = try parser.inputGetType(@ptrCast(element));
253253
// only an image type can be a sumbitter
254254
if (std.ascii.eqlIgnoreCase(tpe, "image") or std.ascii.eqlIgnoreCase(tpe, "submit")) {
255255
return name;

0 commit comments

Comments
 (0)