Add doubleclick event handling to pdfium_test_event_helper.cc
As suggested on the referenced bug by reporter.
Bug: chromium:1043510
Change-Id: I7d81240eee405fa24876f969472760e04638c2fa
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65410
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/samples/pdfium_test_event_helper.cc b/samples/pdfium_test_event_helper.cc
index 3e6f0ca..a3ddbef 100644
--- a/samples/pdfium_test_event_helper.cc
+++ b/samples/pdfium_test_event_helper.cc
@@ -90,6 +90,24 @@
fprintf(stderr, "mouseup: bad button name\n");
}
+void SendMouseDoubleClickEvent(FPDF_FORMHANDLE form,
+ FPDF_PAGE page,
+ const std::vector<std::string>& tokens) {
+ if (tokens.size() != 4 && tokens.size() != 5) {
+ fprintf(stderr, "mousedoubleclick: bad args\n");
+ return;
+ }
+
+ int x = atoi(tokens[2].c_str());
+ int y = atoi(tokens[3].c_str());
+ int modifiers = tokens.size() >= 5 ? GetModifiers(tokens[4]) : 0;
+ if (tokens[1] != "left") {
+ fprintf(stderr, "mousedoubleclick: bad button name\n");
+ return;
+ }
+ FORM_OnLButtonDoubleClick(form, page, modifiers, x, y);
+}
+
void SendMouseMoveEvent(FPDF_FORMHANDLE form,
FPDF_PAGE page,
const std::vector<std::string>& tokens) {
@@ -134,6 +152,8 @@
SendMouseDownEvent(form, page, tokens);
} else if (tokens[0] == "mouseup") {
SendMouseUpEvent(form, page, tokens);
+ } else if (tokens[0] == "mousedoubleclick") {
+ SendMouseDoubleClickEvent(form, page, tokens);
} else if (tokens[0] == "mousemove") {
SendMouseMoveEvent(form, page, tokens);
} else if (tokens[0] == "focus") {
diff --git a/testing/resources/javascript/mouse_events.evt b/testing/resources/javascript/mouse_events.evt
index 68d7912..dc0105b 100644
--- a/testing/resources/javascript/mouse_events.evt
+++ b/testing/resources/javascript/mouse_events.evt
@@ -8,6 +8,8 @@
# click left in field - has effect.
mousedown,left,125,225
mouseup,left,125,225
+# Double-click in field - no effect.
+mousedoubleclick,left,125,225
# Mouse out, click elsewhere.
# This should trigger an On Blur event. (Bug 881)
mousemove,125,100
diff --git a/testing/resources/javascript/mouse_events_expected.txt b/testing/resources/javascript/mouse_events_expected.txt
index 2c88a82..531a38b 100644
--- a/testing/resources/javascript/mouse_events_expected.txt
+++ b/testing/resources/javascript/mouse_events_expected.txt
@@ -21,6 +21,9 @@
Doc Submit Form: url=https://example.com + 19 data bytes:
6e 61 6d 65 3d 54 72 61 6c 66 61 7a 26 61 67 65 3d 31 32
Doc Print: 1, 0, 0, 0, 0, 0, 0, 0
+Alert: focus
+Alert: PASS: this.submitForm blocked with Document.submitForm: User gesture required.
+Alert: PASS: this.print blocked with Document.print: User gesture required.
Alert: exit
Alert: PASS: this.submitForm blocked with Document.submitForm: User gesture required.
Alert: PASS: this.print blocked with Document.print: User gesture required.