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/auto_reset.h" 8#include "base/bind.h" 9#include "base/run_loop.h" 10 11namespace views { 12 13DesktopDispatcherClient::DesktopDispatcherClient() { 14} 15 16DesktopDispatcherClient::~DesktopDispatcherClient() { 17} 18 19void DesktopDispatcherClient::PrepareNestedLoopClosures( 20 base::MessagePumpDispatcher* dispatcher, 21 base::Closure* run_closure, 22 base::Closure* quit_closure) { 23#if defined(OS_WIN) 24 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop(dispatcher)); 25#else 26 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop()); 27#endif 28 *quit_closure = run_loop->QuitClosure(); 29 *run_closure = 30 base::Bind(&base::RunLoop::Run, base::Owned(run_loop.release())); 31} 32 33} // namespace views 34