Index: ui/message_center/views/message_center_view.cc |
diff --git a/ui/message_center/views/message_center_view.cc b/ui/message_center/views/message_center_view.cc |
index dc6d527d59e5a5b650d3ccc93f3becc2c12b0d97..a95de2b48e1a794edc261ed1b40f6409cca80c0f 100644 |
--- a/ui/message_center/views/message_center_view.cc |
+++ b/ui/message_center/views/message_center_view.cc |
@@ -255,20 +255,25 @@ void MessageCenterView::SetSettingsVisible(bool visible) { |
button_bar_->SetBackArrowVisible(visible); |
} |
-void MessageCenterView::ClearAllNotifications() { |
+void MessageCenterView::ClearAllClosableNotifications() { |
if (is_closing_) |
return; |
SetViewHierarchyEnabled(scroller_, false); |
button_bar_->SetAllButtonsEnabled(false); |
- message_list_view_->ClearAllNotifications(scroller_->GetVisibleRect()); |
+ message_list_view_->ClearAllClosableNotifications( |
+ scroller_->GetVisibleRect()); |
} |
void MessageCenterView::OnAllNotificationsCleared() { |
SetViewHierarchyEnabled(scroller_, true); |
button_bar_->SetAllButtonsEnabled(true); |
button_bar_->SetCloseAllButtonEnabled(false); |
- message_center_->RemoveAllVisibleNotifications(true); // Action by user. |
+ |
+ // Action by user. |
+ message_center_->RemoveAllNotifications( |
+ true /* by_user */, |
+ message_center::MessageCenter::RemoveType::NON_PINNED); |
} |
size_t MessageCenterView::NumMessageViewsForTest() const { |
@@ -588,7 +593,14 @@ void MessageCenterView::NotificationsChanged() { |
scroller_->contents()->AddChildView( |
no_message_views ? empty_list_view_.get() : message_list_view_.get()); |
- button_bar_->SetCloseAllButtonEnabled(!no_message_views); |
+ bool no_closable_views = true; |
+ for (const auto& view : notification_views_) { |
+ if (!view.second->IsPinned()) { |
+ no_closable_views = false; |
+ break; |
+ } |
+ } |
+ button_bar_->SetCloseAllButtonEnabled(!no_closable_views); |
scroller_->SetFocusable(!no_message_views); |
if (focus_manager && focused_view) |