diff options
Diffstat (limited to 'ui/message_center/views/message_list_view.cc')
| -rw-r--r-- | ui/message_center/views/message_list_view.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ui/message_center/views/message_list_view.cc b/ui/message_center/views/message_list_view.cc index 9593330..7087998 100644 --- a/ui/message_center/views/message_list_view.cc +++ b/ui/message_center/views/message_list_view.cc @@ -191,17 +191,24 @@ void MessageListView::ResetRepositionSession() { fixed_height_ = 0; } -void MessageListView::ClearAllNotifications( +void MessageListView::ClearAllClosableNotifications( const gfx::Rect& visible_scroll_rect) { for (int i = 0; i < child_count(); ++i) { - views::View* child = child_at(i); + // Safe cast since all views in MessageListView are MessageViews. + MessageView* child = (MessageView*)child_at(i); if (!child->visible()) continue; if (gfx::IntersectRects(child->bounds(), visible_scroll_rect).IsEmpty()) continue; + if (child->IsPinned()) + continue; clearing_all_views_.push_back(child); } - DoUpdateIfPossible(); + if (clearing_all_views_.empty()) { + message_center_view()->OnAllNotificationsCleared(); + } else { + DoUpdateIfPossible(); + } } void MessageListView::OnBoundsAnimatorProgressed( |
