| Index: ui/aura_shell/shell.cc
|
| diff --git a/ui/aura_shell/shell.cc b/ui/aura_shell/shell.cc
|
| index ddd08b50f4e1832546d3d29a410c82bac5a13d30..94ea6d9727e83d208ccb55866e814fa26aafa071 100644
|
| --- a/ui/aura_shell/shell.cc
|
| +++ b/ui/aura_shell/shell.cc
|
| @@ -22,6 +22,8 @@
|
| #include "ui/aura_shell/modal_container_layout_manager.h"
|
| #include "ui/aura_shell/shadow_controller.h"
|
| #include "ui/aura_shell/shelf_layout_controller.h"
|
| +#include "ui/aura_shell/shell_accelerator_controller.h"
|
| +#include "ui/aura_shell/shell_accelerator_filter.h"
|
| #include "ui/aura_shell/shell_delegate.h"
|
| #include "ui/aura_shell/shell_factory.h"
|
| #include "ui/aura_shell/shell_window_ids.h"
|
| @@ -100,6 +102,7 @@ Shell* Shell::instance_ = NULL;
|
|
|
| Shell::Shell(ShellDelegate* delegate)
|
| : ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
|
| + accelerator_controller_(new ShellAcceleratorController),
|
| delegate_(delegate) {
|
| aura::Desktop::GetInstance()->SetEventFilter(
|
| new internal::DesktopEventFilter);
|
| @@ -108,6 +111,8 @@ Shell::Shell(ShellDelegate* delegate)
|
| }
|
|
|
| Shell::~Shell() {
|
| + RemoveDesktopEventFilter(accelerator_filter_.get());
|
| +
|
| // Drag drop controller needs a valid shell instance. We destroy it first.
|
| drag_drop_controller_.reset();
|
|
|
| @@ -191,6 +196,11 @@ void Shell::Init() {
|
| // Force a layout.
|
| desktop_layout->OnWindowResized();
|
|
|
| + // Initialize ShellAcceleratorFilter
|
| + accelerator_filter_.reset(new internal::ShellAcceleratorFilter);
|
| + AddDesktopEventFilter(accelerator_filter_.get());
|
| +
|
| + // Initialize drag drop controller.
|
| drag_drop_controller_.reset(new internal::DragDropController);
|
| aura::Desktop::GetInstance()->SetProperty(aura::kDesktopDragDropClientKey,
|
| static_cast<aura::DragDropClient*>(drag_drop_controller_.get()));
|
|
|