Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(489)

Unified Diff: webkit/tools/test_shell/event_sending_controller.cc

Issue 6261: This fixes http://code.google.com/p/chromium/issues/detail?id=3007, which is ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/tools/test_shell/event_sending_controller.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/tools/test_shell/event_sending_controller.cc
===================================================================
--- webkit/tools/test_shell/event_sending_controller.cc (revision 2916)
+++ webkit/tools/test_shell/event_sending_controller.cc (working copy)
@@ -35,6 +35,8 @@
WebMouseEvent::Button EventSendingController::pressed_button_ =
WebMouseEvent::BUTTON_NONE;
+int EventSendingController::last_button_number_ = -1;
+
namespace {
#if defined(OS_WIN)
@@ -149,6 +151,7 @@
dragMode.Set(true);
last_click_time_sec = 0;
click_count = 0;
+ last_button_number_ = -1;
}
/* static */ WebView* EventSendingController::webview() {
@@ -170,19 +173,27 @@
}
#endif
+WebMouseEvent::Button EventSendingController::GetButtonTypeFromButtonNumber(
+ int button_code) {
+ if (button_code == 0)
+ return WebMouseEvent::BUTTON_LEFT;
+ else if (button_code == 2)
+ return WebMouseEvent::BUTTON_RIGHT;
+
+ return WebMouseEvent::BUTTON_MIDDLE;
+}
+
// static
-WebMouseEvent::Button EventSendingController::GetButtonTypeFromSingleArg(
+int EventSendingController::GetButtonNumberFromSingleArg(
const CppArgumentList& args) {
+ int button_code = 0;
+
if (args.size() > 0 && args[0].isNumber()) {
- int button_code = args[0].ToInt32();
- if (button_code == 1)
- return WebMouseEvent::BUTTON_MIDDLE;
- else if (button_code == 2)
- return WebMouseEvent::BUTTON_RIGHT;
+ button_code = args[0].ToInt32();
}
- return WebMouseEvent::BUTTON_LEFT;
+
+ return button_code;
}
-
//
// Implemented javascript methods.
//
@@ -193,15 +204,22 @@
webview()->Layout();
- WebMouseEvent::Button button_type = GetButtonTypeFromSingleArg(args);
+ int button_number = GetButtonNumberFromSingleArg(args);
+ DCHECK(button_number != -1);
- if ((GetCurrentEventTimeSec() - last_click_time_sec >= kMultiClickTimeSec) ||
- outside_multiclick_radius(last_mouse_pos_, last_click_pos)) {
+ WebMouseEvent::Button button_type = GetButtonTypeFromButtonNumber(
+ button_number);
+
+ if ((GetCurrentEventTimeSec() - last_click_time_sec < kMultiClickTimeSec) &&
+ (!outside_multiclick_radius(last_mouse_pos_, last_click_pos)) &&
+ (button_number == last_button_number_)) {
+ ++click_count;
+ } else {
click_count = 1;
- } else {
- ++click_count;
}
+ last_button_number_ = button_number;
+
WebMouseEvent event;
pressed_button_ = button_type;
InitMouseEvent(WebInputEvent::MOUSE_DOWN, button_type,
@@ -215,8 +233,14 @@
webview()->Layout();
- WebMouseEvent::Button button_type = GetButtonTypeFromSingleArg(args);
+ int button_number = GetButtonNumberFromSingleArg(args);
+ DCHECK(button_number != -1);
+ WebMouseEvent::Button button_type = GetButtonTypeFromButtonNumber(
+ button_number);
+
+ last_button_number_ = button_number;
+
WebMouseEvent event;
InitMouseEvent(WebInputEvent::MOUSE_UP, button_type,
last_mouse_pos_, &event);
« no previous file with comments | « webkit/tools/test_shell/event_sending_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698