Index: ash/wm/window_selector_controller.cc |
=================================================================== |
--- ash/wm/window_selector_controller.cc (revision 216889) |
+++ ash/wm/window_selector_controller.cc (working copy) |
@@ -9,47 +9,9 @@ |
#include "ash/wm/mru_window_tracker.h" |
#include "ash/wm/window_selector.h" |
#include "ash/wm/window_util.h" |
-#include "ui/base/events/event.h" |
-#include "ui/base/events/event_handler.h" |
namespace ash { |
-namespace { |
- |
-// Filter to watch for the termination of a keyboard gesture to cycle through |
-// multiple windows. |
-class WindowSelectorEventFilter : public ui::EventHandler { |
- public: |
- WindowSelectorEventFilter(); |
- virtual ~WindowSelectorEventFilter(); |
- |
- // Overridden from ui::EventHandler: |
- virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(WindowSelectorEventFilter); |
-}; |
- |
-// Watch for all keyboard events by filtering the root window. |
-WindowSelectorEventFilter::WindowSelectorEventFilter() { |
- Shell::GetInstance()->AddPreTargetHandler(this); |
-} |
- |
-WindowSelectorEventFilter::~WindowSelectorEventFilter() { |
- Shell::GetInstance()->RemovePreTargetHandler(this); |
-} |
- |
-void WindowSelectorEventFilter::OnKeyEvent(ui::KeyEvent* event) { |
- // Views uses VKEY_MENU for both left and right Alt keys. |
- if (event->key_code() == ui::VKEY_MENU && |
- event->type() == ui::ET_KEY_RELEASED) { |
- Shell::GetInstance()->window_selector_controller()->AltKeyReleased(); |
- // Warning: |this| will be deleted from here on. |
- } |
-} |
- |
-} // namespace |
- |
WindowSelectorController::WindowSelectorController() { |
} |
@@ -79,33 +41,10 @@ |
aura::Window* active_window = wm::GetActiveWindow(); |
if (active_window) |
wm::DeactivateWindow(active_window); |
- window_selector_.reset( |
- new WindowSelector(windows, WindowSelector::OVERVIEW, this)); |
+ window_selector_.reset(new WindowSelector(windows, this)); |
} |
} |
-void WindowSelectorController::HandleCycleWindow( |
- WindowSelector::Direction direction) { |
- if (!CanSelect()) |
- return; |
- |
- if (!IsSelecting()) { |
- event_handler_.reset(new WindowSelectorEventFilter()); |
- std::vector<aura::Window*> windows = ash::Shell::GetInstance()-> |
- mru_window_tracker()->BuildMruWindowList(); |
- window_selector_.reset( |
- new WindowSelector(windows, WindowSelector::CYCLE, this)); |
- window_selector_->Step(direction); |
- } else if (window_selector_->mode() == WindowSelector::CYCLE) { |
- window_selector_->Step(direction); |
- } |
-} |
- |
-void WindowSelectorController::AltKeyReleased() { |
- event_handler_.reset(); |
- window_selector_->SelectWindow(); |
-} |
- |
bool WindowSelectorController::IsSelecting() { |
return window_selector_.get() != NULL; |
} |