Index: chrome/browser/ui/views/desktop_media_picker_views.cc |
diff --git a/chrome/browser/ui/views/desktop_media_picker_views.cc b/chrome/browser/ui/views/desktop_media_picker_views.cc |
index f8badc4fbdd33f0c8fc4d7da493cac9fa67cf9fa..4614f480a8261a3360404a534a618a5f84e40661 100644 |
--- a/chrome/browser/ui/views/desktop_media_picker_views.cc |
+++ b/chrome/browser/ui/views/desktop_media_picker_views.cc |
@@ -15,6 +15,7 @@ |
#include "grit/generated_resources.h" |
#include "ui/aura/window_tree_host.h" |
#include "ui/base/l10n/l10n_util.h" |
+#include "ui/events/event_constants.h" |
#include "ui/events/keycodes/keyboard_codes.h" |
#include "ui/gfx/canvas.h" |
#include "ui/native_theme/native_theme.h" |
@@ -97,6 +98,7 @@ class DesktopMediaSourceView : public views::View { |
virtual void OnFocus() OVERRIDE; |
virtual void OnBlur() OVERRIDE; |
virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; |
+ virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; |
private: |
DesktopMediaListView* parent_; |
@@ -336,6 +338,23 @@ bool DesktopMediaSourceView::OnMousePressed(const ui::MouseEvent& event) { |
return true; |
} |
+void DesktopMediaSourceView::OnGestureEvent(ui::GestureEvent* event) { |
+ if (event->type() == ui::ET_GESTURE_TAP && |
+ event->details().tap_count() == 2) { |
+ RequestFocus(); |
+ parent_->OnDoubleClick(); |
+ event->SetHandled(); |
+ return; |
+ } |
+ |
+ // Detect tap gesture using ET_GESTURE_TAP_DOWN so the view also gets focused |
+ // on the long tap (when the tap gesture starts). |
+ if (event->type() == ui::ET_GESTURE_TAP_DOWN) { |
+ RequestFocus(); |
+ event->SetHandled(); |
+ } |
+} |
+ |
DesktopMediaListView::DesktopMediaListView( |
DesktopMediaPickerDialogView* parent, |
scoped_ptr<DesktopMediaList> media_list) |