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