Skip to content

Commit cde4454

Browse files
committed
use inputGetType and add buttonGetType
1 parent 246ba15 commit cde4454

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
@@ -2832,3 +2832,11 @@ pub fn inputSetValue(input: *Input, value: []const u8) !void {
28322832
const err = c.dom_html_input_element_set_value(input, try strFromData(value));
28332833
try DOMErr(err);
28342834
}
2835+
2836+
pub fn buttonGetType(button: *Button) ![]const u8 {
2837+
var s_: ?*String = null;
2838+
const err = c.dom_html_button_element_get_type(button, &s_);
2839+
try DOMErr(err);
2840+
const s = s_ orelse return "button";
2841+
return strToData(s);
2842+
}

src/browser/page.zig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -580,14 +580,14 @@ pub const Page = struct {
580580
},
581581
.input => {
582582
const element: *parser.Element = @ptrCast(node);
583-
const input_type = (try parser.elementGetAttribute(element, "type")) orelse return;
583+
const input_type = try parser.inputGetType(@ptrCast(element));
584584
if (std.ascii.eqlIgnoreCase(input_type, "submit")) {
585585
return self.elementSubmitForm(element);
586586
}
587587
},
588588
.button => {
589589
const element: *parser.Element = @ptrCast(node);
590-
const button_type = (try parser.elementGetAttribute(element, "type")) orelse return;
590+
const button_type = try parser.buttonGetType(@ptrCast(element));
591591
if (std.ascii.eqlIgnoreCase(button_type, "submit")) {
592592
return self.elementSubmitForm(element);
593593
}
@@ -659,7 +659,7 @@ pub const Page = struct {
659659
switch (tag) {
660660
.input => {
661661
const element: *parser.Element = @ptrCast(node);
662-
const input_type = (try parser.elementGetAttribute(element, "type")) orelse "text";
662+
const input_type = try parser.inputGetType(@ptrCast(element));
663663
if (std.mem.eql(u8, input_type, "text")) {
664664
if (std.mem.eql(u8, new_key, "Enter")) {
665665
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)