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

Unified Diff: chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc

Issue 23533030: rAc: Enforce a 3 second grace period for generated card bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: exclude test on !views Created 7 years, 3 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
Index: chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc
diff --git a/chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc b/chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc
index 8bc4766d10e7df5582ce78225b47c15f22fd3f60..466c5174c69b4903e7269dc89aefbc1aa82224e3 100644
--- a/chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc
+++ b/chrome/browser/ui/views/autofill/generated_credit_card_bubble_views.cc
@@ -34,9 +34,19 @@ views::View* GetAnchor(
GeneratedCreditCardBubbleViews::~GeneratedCreditCardBubbleViews() {}
void GeneratedCreditCardBubbleViews::Show() {
- // TODO(dbeam): investigate why this steals focus from the web contents.
views::BubbleDelegateView::CreateBubble(this)->Show();
+ // Grab mouse events for 3 seconds after showing. This prevents clicks outside
+ // of the bubble from dismissing the bubble. After 3 seconds, it will revert
+ // to normal close-on-deactivate behavior.
+ GetWidget()->SetCapture(NULL);
+ GetWidget()->set_auto_release_capture(false);
+ capture_timer_.Start(
+ FROM_HERE,
+ base::TimeDelta::FromSeconds(3),
+ this,
+ &GeneratedCreditCardBubbleViews::ReleaseCapture);
+
// This bubble doesn't render correctly on Windows without calling
// |SizeToContents()|. This must be called after showing the widget.
SizeToContents();
@@ -105,4 +115,8 @@ GeneratedCreditCardBubbleViews::GeneratedCreditCardBubbleViews(
set_margins(gfx::Insets(0, insets.left(), insets.top(), insets.left()));
}
+void GeneratedCreditCardBubbleViews::ReleaseCapture() {
+ GetWidget()->ReleaseCapture();
+}
+
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698