1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ui/views/widget/desktop_aura/desktop_dispatcher_client.h" 6 7#include "base/run_loop.h" 8 9namespace views { 10 11DesktopDispatcherClient::DesktopDispatcherClient() {} 12 13DesktopDispatcherClient::~DesktopDispatcherClient() {} 14 15void DesktopDispatcherClient::RunWithDispatcher( 16 base::MessageLoop::Dispatcher* nested_dispatcher, 17 aura::Window* associated_window, 18 bool nestable_tasks_allowed) { 19 // TODO(erg): This class has been copypastad from 20 // ash/accelerators/nested_dispatcher_controller.cc. I have left my changes 21 // commented out because I don't entirely understand the implications of the 22 // change. 23 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); 24 bool did_allow_task_nesting = loop->NestableTasksAllowed(); 25 loop->SetNestableTasksAllowed(nestable_tasks_allowed); 26 27 // DefaultAcceleratorDispatcher dispatcher(nested_dispatcher, 28 // associated_window); 29 base::RunLoop run_loop(nested_dispatcher); 30 run_loop.Run(); 31 loop->SetNestableTasksAllowed(did_allow_task_nesting); 32} 33 34} // namespace views 35