Chromium Code Reviews| Index: chrome/browser/ui/views/payments/payment_request_item_list.cc |
| diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.cc b/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| index b85a64b9c00d7526323c2d128488dc154cb08294..fc5b25693bb641f122d1019af970dbd9fd429610 100644 |
| --- a/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| +++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| @@ -4,6 +4,7 @@ |
| #include "chrome/browser/ui/views/payments/payment_request_item_list.h" |
| +#include "chrome/browser/ui/views/payments/payment_request_dialog_view.h" |
| #include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h" |
| #include "chrome/browser/ui/views/payments/payment_request_row_view.h" |
| #include "chrome/browser/ui/views/payments/payment_request_views_util.h" |
| @@ -113,13 +114,14 @@ std::unique_ptr<views::View> PaymentRequestItemList::Item::CreateItemView() { |
| void PaymentRequestItemList::Item::ButtonPressed(views::Button* sender, |
| const ui::Event& event) { |
| if (CanBeSelected()) { |
| - list()->SelectItem(this); |
| + list()->SelectItem(this, /*go_back=*/true); |
|
Mathieu
2017/03/21 13:56:59
Do you think we could do
if (CanBeSelected()) {
anthonyvd
2017/03/21 14:56:06
I changed the code to call GoBack in subclasses im
|
| } else { |
| PerformSelectionFallback(); |
| } |
| } |
| -PaymentRequestItemList::PaymentRequestItemList() : selected_item_(nullptr) {} |
| +PaymentRequestItemList::PaymentRequestItemList(PaymentRequestDialogView* dialog) |
| + : selected_item_(nullptr), dialog_(dialog) {} |
| PaymentRequestItemList::~PaymentRequestItemList() {} |
| @@ -128,7 +130,7 @@ void PaymentRequestItemList::AddItem( |
| DCHECK_EQ(this, item->list()); |
| items_.push_back(std::move(item)); |
| if (items_.back()->selected()) |
| - SelectItem(items_.back().get()); |
| + SelectItem(items_.back().get(), /*go_back=*/false); |
| } |
| std::unique_ptr<views::View> PaymentRequestItemList::CreateListView() { |
| @@ -145,7 +147,8 @@ std::unique_ptr<views::View> PaymentRequestItemList::CreateListView() { |
| return content_view; |
| } |
| -void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item) { |
| +void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item, |
| + bool go_back) { |
| DCHECK_EQ(this, item->list()); |
| if (selected_item_ == item) |
| return; |
| @@ -154,6 +157,8 @@ void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item) { |
| selected_item_ = item; |
| item->SetSelected(true); |
| + if (go_back) |
| + dialog_->GoBack(); |
| } |
| void PaymentRequestItemList::UnselectSelectedItem() { |