| Index: ui/views/controls/menu/menu_pre_target_handler.cc
|
| diff --git a/ui/views/controls/menu/menu_pre_target_handler.cc b/ui/views/controls/menu/menu_pre_target_handler.cc
|
| index 97cceb3104d761a8c24dfbc690743b5c41035f72..7ac7a3f5b474d2423683bbf287947b3f472d89eb 100644
|
| --- a/ui/views/controls/menu/menu_pre_target_handler.cc
|
| +++ b/ui/views/controls/menu/menu_pre_target_handler.cc
|
| @@ -24,11 +24,14 @@ MenuPreTargetHandler::MenuPreTargetHandler(MenuController* controller,
|
| Widget* owner)
|
| : controller_(controller), root_(GetOwnerRootWindow(owner)) {
|
| aura::Env::GetInstanceDontCreate()->PrependPreTargetHandler(this);
|
| - aura::client::GetActivationClient(root_)->AddObserver(this);
|
| - root_->AddObserver(this);
|
| + if (root_) {
|
| + aura::client::GetActivationClient(root_)->AddObserver(this);
|
| + root_->AddObserver(this);
|
| + }
|
| }
|
|
|
| MenuPreTargetHandler::~MenuPreTargetHandler() {
|
| + aura::Env::GetInstanceDontCreate()->RemovePreTargetHandler(this);
|
| Cleanup();
|
| }
|
|
|
| @@ -55,7 +58,6 @@ void MenuPreTargetHandler::OnKeyEvent(ui::KeyEvent* event) {
|
| void MenuPreTargetHandler::Cleanup() {
|
| if (!root_)
|
| return;
|
| - aura::Env::GetInstanceDontCreate()->RemovePreTargetHandler(this);
|
| // The ActivationClient may have been destroyed by the time we get here.
|
| aura::client::ActivationClient* client =
|
| aura::client::GetActivationClient(root_);
|
|
|