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) |