Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "athena/wm/window_manager_impl.h" | 5 #include "athena/wm/window_manager_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "athena/screen/public/screen_manager.h" | 9 #include "athena/screen/public/screen_manager.h" |
| 10 #include "athena/util/container_priorities.h" | 10 #include "athena/util/container_priorities.h" |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 196 | 196 |
| 197 bool WindowManagerImpl::IsOverviewModeActive() { | 197 bool WindowManagerImpl::IsOverviewModeActive() { |
| 198 return overview_; | 198 return overview_; |
| 199 } | 199 } |
| 200 | 200 |
| 201 void WindowManagerImpl::SetInOverview(bool active) { | 201 void WindowManagerImpl::SetInOverview(bool active) { |
| 202 bool in_overview = !!overview_; | 202 bool in_overview = !!overview_; |
| 203 if (active == in_overview) | 203 if (active == in_overview) |
| 204 return; | 204 return; |
| 205 | 205 |
| 206 const AcceleratorData esc_accelerator_data = { | |
| 207 TRIGGER_ON_PRESS, ui::VKEY_ESCAPE, ui::EF_NONE, CMD_EXIT_OVERVIEW, | |
| 208 AF_NONE}; | |
| 209 | |
| 206 bezel_controller_->set_left_right_delegate( | 210 bezel_controller_->set_left_right_delegate( |
| 207 active ? NULL : split_view_controller_.get()); | 211 active ? NULL : split_view_controller_.get()); |
| 208 if (active) { | 212 if (active) { |
| 209 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeEnter()); | 213 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeEnter()); |
| 210 | 214 |
| 211 // Note: The window_list_provider_ resembles the exact window list of the | 215 // Note: The window_list_provider_ resembles the exact window list of the |
| 212 // container, so no re-stacking is required before showing the OverviewMode. | 216 // container, so no re-stacking is required before showing the OverviewMode. |
| 213 overview_ = WindowOverviewMode::Create( | 217 overview_ = WindowOverviewMode::Create( |
| 214 container_.get(), window_list_provider_.get(), | 218 container_.get(), window_list_provider_.get(), |
| 215 split_view_controller_.get(), this); | 219 split_view_controller_.get(), this); |
| 220 AcceleratorManager::Get()->RegisterAccelerator(esc_accelerator_data, this); | |
| 216 } else { | 221 } else { |
| 217 overview_.reset(); | 222 overview_.reset(); |
| 218 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeExit()); | 223 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeExit()); |
| 224 AcceleratorManager::Get()->UnregisterAccelerator(esc_accelerator_data, | |
| 225 this); | |
| 219 } | 226 } |
| 220 } | 227 } |
| 221 | 228 |
| 222 void WindowManagerImpl::InstallAccelerators() { | 229 void WindowManagerImpl::InstallAccelerators() { |
| 223 const AcceleratorData accelerator_data[] = { | 230 const AcceleratorData accelerator_data[] = { |
| 224 {TRIGGER_ON_PRESS, ui::VKEY_F6, ui::EF_NONE, CMD_TOGGLE_OVERVIEW, | 231 {TRIGGER_ON_PRESS, ui::VKEY_F6, ui::EF_NONE, CMD_TOGGLE_OVERVIEW, |
| 225 AF_NONE}, | 232 AF_NONE}, |
| 226 {TRIGGER_ON_PRESS, ui::VKEY_F6, ui::EF_CONTROL_DOWN, | 233 {TRIGGER_ON_PRESS, ui::VKEY_F6, ui::EF_CONTROL_DOWN, |
| 227 CMD_TOGGLE_SPLIT_VIEW, AF_NONE}, | 234 CMD_TOGGLE_SPLIT_VIEW, AF_NONE}, |
| 228 }; | 235 }; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 290 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeEnter()); | 297 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeEnter()); |
| 291 split_view_controller_->ActivateSplitMode(left, right); | 298 split_view_controller_->ActivateSplitMode(left, right); |
| 292 wm::ActivateWindow(to_activate); | 299 wm::ActivateWindow(to_activate); |
| 293 } | 300 } |
| 294 | 301 |
| 295 void WindowManagerImpl::OnWindowDestroying(aura::Window* window) { | 302 void WindowManagerImpl::OnWindowDestroying(aura::Window* window) { |
| 296 if (window == container_) | 303 if (window == container_) |
| 297 container_.reset(); | 304 container_.reset(); |
| 298 } | 305 } |
| 299 | 306 |
| 300 bool WindowManagerImpl::IsCommandEnabled(int command_id) const { | 307 bool WindowManagerImpl::IsCommandEnabled(int command_id) const { |
|
Jun Mukai
2014/09/25 21:53:41
Isn't it good enough to make this returning false
Jun Mukai
2014/09/25 22:37:45
FYI: if you want to keep register/unregister struc
Greg Levin
2014/10/02 21:56:09
Based on our conversation, I'm leaving this alone.
Greg Levin
2014/10/02 21:56:09
Leaving as is based on our conversation with Oshim
| |
| 301 return true; | 308 return true; |
| 302 } | 309 } |
| 303 | 310 |
| 304 bool WindowManagerImpl::OnAcceleratorFired(int command_id, | 311 bool WindowManagerImpl::OnAcceleratorFired(int command_id, |
| 305 const ui::Accelerator& accelerator) { | 312 const ui::Accelerator& accelerator) { |
| 306 switch (command_id) { | 313 switch (command_id) { |
| 314 case CMD_EXIT_OVERVIEW: | |
| 315 if (!IsOverviewModeActive()) | |
| 316 break; // else fall through & Toggle | |
| 307 case CMD_TOGGLE_OVERVIEW: | 317 case CMD_TOGGLE_OVERVIEW: |
| 308 ToggleOverview(); | 318 ToggleOverview(); |
| 309 break; | 319 break; |
| 310 case CMD_TOGGLE_SPLIT_VIEW: | 320 case CMD_TOGGLE_SPLIT_VIEW: |
| 311 ToggleSplitview(); | 321 ToggleSplitview(); |
| 312 break; | 322 break; |
| 313 } | 323 } |
| 314 return true; | 324 return true; |
| 315 } | 325 } |
| 316 | 326 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 425 DCHECK(!instance); | 435 DCHECK(!instance); |
| 426 } | 436 } |
| 427 | 437 |
| 428 // static | 438 // static |
| 429 WindowManager* WindowManager::GetInstance() { | 439 WindowManager* WindowManager::GetInstance() { |
| 430 DCHECK(instance); | 440 DCHECK(instance); |
| 431 return instance; | 441 return instance; |
| 432 } | 442 } |
| 433 | 443 |
| 434 } // namespace athena | 444 } // namespace athena |
| OLD | NEW |