| 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..f4a9e8484f960b221eb2bde42492cc8fc157bf6d 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,18 @@ 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);
|
| + capture_timer_.Start(
|
| + FROM_HERE,
|
| + base::TimeDelta::FromSeconds(3),
|
| + base::Bind(&GeneratedCreditCardBubbleViews::ReleaseCapture,
|
| + base::Unretained(this)));
|
| +
|
| // This bubble doesn't render correctly on Windows without calling
|
| // |SizeToContents()|. This must be called after showing the widget.
|
| SizeToContents();
|
| @@ -100,9 +109,14 @@ GeneratedCreditCardBubbleViews::GeneratedCreditCardBubbleViews(
|
| const base::WeakPtr<GeneratedCreditCardBubbleController>& controller)
|
| : BubbleDelegateView(GetAnchor(controller), views::BubbleBorder::TOP_RIGHT),
|
| controller_(controller),
|
| + capture_timer_(false, false),
|
| weak_ptr_factory_(this) {
|
| gfx::Insets insets = views::BubbleFrameView::GetTitleInsets();
|
| set_margins(gfx::Insets(0, insets.left(), insets.top(), insets.left()));
|
| }
|
|
|
| +void GeneratedCreditCardBubbleViews::ReleaseCapture() {
|
| + GetWidget()->ReleaseCapture();
|
| +}
|
| +
|
| } // namespace autofill
|
|
|