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

Unified Diff: ui/events/event.cc

Issue 398393003: Require a mouse button release event before counting a press event as a new click. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | « ui/events/event.h ('k') | ui/events/event_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/event.cc
diff --git a/ui/events/event.cc b/ui/events/event.cc
index df38f38365ace7a3d8adbd89ea72bf7d493385ae..06292810811a5f770f3183e7894a4494a1348eec 100644
--- a/ui/events/event.cc
+++ b/ui/events/event.cc
@@ -317,15 +317,20 @@ bool MouseEvent::IsRepeatedClickEvent(
int MouseEvent::GetRepeatCount(const MouseEvent& event) {
int click_count = 1;
if (last_click_event_) {
- if (event.type() == ui::ET_MOUSE_RELEASED)
+ if (event.type() == ui::ET_MOUSE_RELEASED) {
+ last_click_released_ = true;
sky 2014/07/17 21:37:55 If you get a capture change I'm not sure if you ar
flackr 2014/07/18 16:20:49 If the event is handled within chrome this is call
sky 2014/07/18 19:20:59 What I'm saying is that I'm not sure if we necessa
flackr 2014/07/18 19:45:23 Ah I see what you're saying. If I double click, an
return last_click_event_->GetClickCount();
- if (IsX11SendEventTrue(event.native_event()))
+ }
+ if (!last_click_released_ ||
+ IsX11SendEventTrue(event.native_event())) {
click_count = last_click_event_->GetClickCount();
- else if (IsRepeatedClickEvent(*last_click_event_, event))
+ } else if (IsRepeatedClickEvent(*last_click_event_, event)) {
click_count = last_click_event_->GetClickCount() + 1;
+ }
delete last_click_event_;
}
last_click_event_ = new MouseEvent(event);
+ last_click_released_ = false;
if (click_count > 3)
click_count = 3;
last_click_event_->SetClickCount(click_count);
@@ -334,6 +339,7 @@ int MouseEvent::GetRepeatCount(const MouseEvent& event) {
// static
MouseEvent* MouseEvent::last_click_event_ = NULL;
+bool MouseEvent::last_click_released_ = false;
int MouseEvent::GetClickCount() const {
if (type() != ET_MOUSE_PRESSED && type() != ET_MOUSE_RELEASED)
« no previous file with comments | « ui/events/event.h ('k') | ui/events/event_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698