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