| Index: ash/accelerators/accelerator_controller.cc
|
| diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
|
| index b7a51cfb50a6a5ea6b9fa8f107c11f879a592fe9..f660addc64135352d09717cdaa688fedaf2ed077 100644
|
| --- a/ash/accelerators/accelerator_controller.cc
|
| +++ b/ash/accelerators/accelerator_controller.cc
|
| @@ -236,6 +236,17 @@ bool HandleMagnifyScreen(int delta_index) {
|
| return true;
|
| }
|
|
|
| +bool HandleMagnifyScreenScroll(
|
| + MagnificationController::ScrollDirection direction) {
|
| + MagnificationController* controller =
|
| + ash::Shell::GetInstance()->magnification_controller();
|
| + if (controller->IsEnabled()) {
|
| + controller->SetScrollDirection(direction);
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| bool HandleMediaNextTrack() {
|
| Shell::GetInstance()->media_delegate()->HandleMediaNextTrack();
|
| return true;
|
| @@ -798,7 +809,7 @@ void AcceleratorController::Init() {
|
| for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i)
|
| actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]);
|
| for (size_t i = 0; i < kReservedActionsLength; ++i)
|
| - reserved_actions_.insert(kReservedActions[i]);
|
| + AddReservedAction(kReservedActions[i]);
|
| for (size_t i = 0; i < kNonrepeatableActionsLength; ++i)
|
| nonrepeatable_actions_.insert(kNonrepeatableActions[i]);
|
| for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i)
|
| @@ -815,7 +826,7 @@ void AcceleratorController::Init() {
|
| if (DebugShortcutsEnabled()) {
|
| RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength);
|
| for (size_t i = 0; i < kReservedDebugActionsLength; ++i)
|
| - reserved_actions_.insert(kReservedDebugActions[i]);
|
| + AddReservedAction(kReservedDebugActions[i]);
|
| }
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -824,6 +835,20 @@ void AcceleratorController::Init() {
|
| #endif
|
| }
|
|
|
| +void AcceleratorController::InstallMagnifierAccelerators() {
|
| + RegisterAccelerators(kMagnifierAcceleratorData,
|
| + kMagnifierAcceleratorDataLength);
|
| + for (size_t i = 0; i < kMagnifierAcceleratorDataLength; i++)
|
| + AddReservedAction(kMagnifierAcceleratorData[i].action);
|
| +}
|
| +
|
| +void AcceleratorController::UninstallMagnifierAccelerators() {
|
| + UnregisterAccelerators(kMagnifierAcceleratorData,
|
| + kMagnifierAcceleratorDataLength);
|
| + for (size_t i = 0; i < kMagnifierAcceleratorDataLength; i++)
|
| + RemoveReservedAction(kMagnifierAcceleratorData[i].action);
|
| +}
|
| +
|
| void AcceleratorController::Register(const ui::Accelerator& accelerator,
|
| ui::AcceleratorTarget* target) {
|
| accelerator_manager_->Register(accelerator,
|
| @@ -1117,6 +1142,16 @@ bool AcceleratorController::PerformAction(int action,
|
| return HandleMagnifyScreen(1);
|
| case MAGNIFY_SCREEN_ZOOM_OUT:
|
| return HandleMagnifyScreen(-1);
|
| + case MAGNIFY_SCREEN_UP:
|
| + return HandleMagnifyScreenScroll(MagnificationController::SCROLL_UP);
|
| + case MAGNIFY_SCREEN_DOWN:
|
| + return HandleMagnifyScreenScroll(MagnificationController::SCROLL_DOWN);
|
| + case MAGNIFY_SCREEN_LEFT:
|
| + return HandleMagnifyScreenScroll(MagnificationController::SCROLL_LEFT);
|
| + case MAGNIFY_SCREEN_RIGHT:
|
| + return HandleMagnifyScreenScroll(MagnificationController::SCROLL_RIGHT);
|
| + case MAGNIFY_SCREEN_STOP_SCROLL:
|
| + return HandleMagnifyScreenScroll(MagnificationController::SCROLL_NONE);
|
| case MEDIA_NEXT_TRACK:
|
| return HandleMediaNextTrack();
|
| case MEDIA_PLAY_PAUSE:
|
| @@ -1201,6 +1236,33 @@ void AcceleratorController::RegisterAccelerators(
|
| }
|
| }
|
|
|
| +void AcceleratorController::UnregisterAccelerators(
|
| + const AcceleratorData accelerators[],
|
| + size_t accelerators_length) {
|
| + for (size_t i = 0; i < accelerators_length; ++i) {
|
| + ui::Accelerator accelerator(accelerators[i].keycode,
|
| + accelerators[i].modifiers);
|
| + accelerator.set_type(accelerators[i].trigger_on_press ?
|
| + ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED);
|
| + Unregister(accelerator, this);
|
| + std::map<ui::Accelerator, int>::const_iterator it =
|
| + accelerators_.find(accelerator);
|
| + DCHECK(it != accelerators_.end());
|
| + accelerators_.erase(it);
|
| + }
|
| +}
|
| +
|
| +void AcceleratorController::AddReservedAction(AcceleratorAction action) {
|
| + if (reserved_actions_.find(action) == reserved_actions_.end())
|
| + reserved_actions_.insert(action);
|
| +}
|
| +
|
| +void AcceleratorController::RemoveReservedAction(AcceleratorAction action) {
|
| + std::set<int>::const_iterator it = reserved_actions_.find(action);
|
| + if (it != reserved_actions_.end())
|
| + reserved_actions_.erase(it);
|
| +}
|
| +
|
| void AcceleratorController::SetKeyboardBrightnessControlDelegate(
|
| scoped_ptr<KeyboardBrightnessControlDelegate>
|
| keyboard_brightness_control_delegate) {
|
|
|