Chromium Code Reviews| Index: chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
| diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
| index 4df0338cb5fc0f7092d489db7db1dc79bd333354..3ce6e73f8e455f5f335a9b2b968769c312909967 100644 |
| --- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
| +++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc |
| @@ -411,6 +411,9 @@ LoginDisplayHostImpl::~LoginDisplayHostImpl() { |
| RemoveVirtualKeyboardStateObserver(this); |
| ash::Shell::GetScreen()->RemoveObserver(this); |
| + if (login_view_) |
|
ygorshenin1
2014/07/07 10:30:14
nit: it would be better to check that login_window
Roman Sorokin (ftl)
2014/07/08 17:20:03
Done.
|
| + login_window_->RemoveRemovalsObserver(this); |
| + |
| if (login::LoginScrollIntoViewEnabled()) |
| ResetKeyboardOverscrollOverride(); |
| @@ -905,6 +908,16 @@ void LoginDisplayHostImpl::OnDisplayMetricsChanged(const gfx::Display& display, |
| } |
| //////////////////////////////////////////////////////////////////////////////// |
| +// LoginDisplayHostImpl, views::WidgetRemovalsObserver implementation: |
| +void LoginDisplayHostImpl::OnWillRemoveView(views::Widget* widget, |
| + views::View* view) { |
| + if (view != static_cast<views::View*>(login_view_)) |
| + return; |
| + login_view_ = NULL; |
| + widget->RemoveRemovalsObserver(this); |
| +} |
| + |
| +//////////////////////////////////////////////////////////////////////////////// |
| // LoginDisplayHostImpl, private |
| void LoginDisplayHostImpl::ShutdownDisplayHost(bool post_quit_task) { |
| @@ -1062,6 +1075,7 @@ void LoginDisplayHostImpl::InitLoginWindowAndView() { |
| login_window_->GetNativeView(), |
| wm::ANIMATE_HIDE); |
| + login_window_->AddRemovalsObserver(this); |
| login_window_->SetContentsView(login_view_); |
| // If WebUI is initialized in hidden state, show it only if we're no |