mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@571 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
46
libcef/browser/browser_message_loop.cc
Normal file
46
libcef/browser/browser_message_loop.cc
Normal file
@ -0,0 +1,46 @@
|
||||
// Copyright (c) 2012 The Chromium Embedded Framework 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 "libcef/browser/browser_message_loop.h"
|
||||
|
||||
CefBrowserMessageLoop::CefBrowserMessageLoop()
|
||||
: is_iterating_(true) {
|
||||
}
|
||||
|
||||
CefBrowserMessageLoop::~CefBrowserMessageLoop() {
|
||||
#if defined(OS_MACOSX)
|
||||
// On Mac the MessageLoop::AutoRunState scope in Run() never exits so clear
|
||||
// the state_ variable to avoid an assertion in the MessageLoop destructor.
|
||||
state_ = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
// static
|
||||
CefBrowserMessageLoop* CefBrowserMessageLoop::current() {
|
||||
MessageLoop* loop = MessageLoop::current();
|
||||
DCHECK_EQ(MessageLoop::TYPE_UI, loop->type());
|
||||
return static_cast<CefBrowserMessageLoop*>(loop);
|
||||
}
|
||||
|
||||
bool CefBrowserMessageLoop::DoIdleWork() {
|
||||
bool valueToRet = inherited::DoIdleWork();
|
||||
if (is_iterating_)
|
||||
pump_->Quit();
|
||||
return valueToRet;
|
||||
}
|
||||
|
||||
// Do a single interation of the UI message loop.
|
||||
void CefBrowserMessageLoop::DoMessageLoopIteration() {
|
||||
#if defined(OS_MACOSX)
|
||||
Run();
|
||||
#else
|
||||
RunWithDispatcher(NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Run the UI message loop.
|
||||
void CefBrowserMessageLoop::RunMessageLoop() {
|
||||
is_iterating_ = false;
|
||||
DoMessageLoopIteration();
|
||||
}
|
Reference in New Issue
Block a user