// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ash/test/ash_test_views_delegate.h" #include "ash/accelerators/accelerator_controller_impl.h" #include "ash/shell.h" #include "chromeos/ui/frame/frame_utils.h" namespace ash { namespace { void ProcessAcceleratorNow(const ui::Accelerator& accelerator) { ash::AcceleratorController::Get()->Process(accelerator); } } // namespace AshTestViewsDelegate::AshTestViewsDelegate() = default; AshTestViewsDelegate::~AshTestViewsDelegate() = default; void AshTestViewsDelegate::OnBeforeWidgetInit( views::Widget::InitParams* params, views::internal::NativeWidgetDelegate* delegate) { if (!params->parent && !params->context) params->context = Shell::GetRootWindowForNewWindows(); if (params->opacity == views::Widget::InitParams::WindowOpacity::kInferred) chromeos::ResolveInferredOpacity(params); TestViewsDelegate::OnBeforeWidgetInit(params, delegate); } views::TestViewsDelegate::ProcessMenuAcceleratorResult AshTestViewsDelegate::ProcessAcceleratorWhileMenuShowing( const ui::Accelerator& accelerator) { if (ash::AcceleratorController::Get()->OnMenuAccelerator(accelerator)) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(ProcessAcceleratorNow, accelerator)); return views::ViewsDelegate::ProcessMenuAcceleratorResult::CLOSE_MENU; } ProcessAcceleratorNow(accelerator); return views::ViewsDelegate::ProcessMenuAcceleratorResult::LEAVE_MENU_OPEN; } } // namespace ash