Merge revision 1062 changes:
- Windows: Change CefBrowser::SetOSModalLoop to CefSetOSModalLoop because the functionality is not connected with any particular browser (issue #194). git-svn-id: https://chromiumembedded.googlecode.com/svn/branches/1271@1064 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
8ff19f8ccb
commit
279fca9e80
|
@ -87,6 +87,12 @@ CEF_EXPORT void cef_run_message_loop();
|
|||
///
|
||||
CEF_EXPORT void cef_quit_message_loop();
|
||||
|
||||
///
|
||||
// Set to true (1) before calling Windows APIs like TrackPopupMenu that enter a
|
||||
// modal message loop. Set to false (0) after exiting the modal message loop.
|
||||
///
|
||||
CEF_EXPORT void cef_set_osmodal_loop(int osModalLoop);
|
||||
|
||||
///
|
||||
// Implement this structure to provide handler implementations. Methods will be
|
||||
// called on the thread indicated.
|
||||
|
|
|
@ -302,13 +302,6 @@ typedef struct _cef_browser_t {
|
|||
// Send a capture lost event to the browser.
|
||||
///
|
||||
void (CEF_CALLBACK *send_capture_lost_event)(struct _cef_browser_t* self);
|
||||
|
||||
///
|
||||
// Set to true (1) before calling Windows APIs like TrackPopupMenu that enter
|
||||
// a modal message loop.
|
||||
///
|
||||
void (CEF_CALLBACK *set_osmodal_loop)(struct _cef_browser_t* self,
|
||||
int osModalLoop);
|
||||
} cef_browser_t;
|
||||
|
||||
|
||||
|
|
|
@ -91,6 +91,12 @@ void CefRunMessageLoop();
|
|||
/*--cef()--*/
|
||||
void CefQuitMessageLoop();
|
||||
|
||||
///
|
||||
// Set to true before calling Windows APIs like TrackPopupMenu that enter a
|
||||
// modal message loop. Set to false after exiting the modal message loop.
|
||||
///
|
||||
/*--cef()--*/
|
||||
void CefSetOSModalLoop(bool osModalLoop);
|
||||
|
||||
///
|
||||
// Implement this interface to provide handler implementations. Methods will be
|
||||
|
|
|
@ -339,13 +339,6 @@ class CefBrowser : public virtual CefBase {
|
|||
///
|
||||
/*--cef()--*/
|
||||
virtual void SendCaptureLostEvent() =0;
|
||||
|
||||
///
|
||||
// Set to true before calling Windows APIs like TrackPopupMenu that enter a
|
||||
// modal message loop.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual void SetOSModalLoop(bool osModalLoop) =0;
|
||||
};
|
||||
|
||||
#endif // CEF_INCLUDE_CEF_BROWSER_H_
|
||||
|
|
|
@ -361,11 +361,6 @@ void CefBrowserImpl::CloseDevTools() {
|
|||
base::Bind(&CefBrowserImpl::UIT_CloseDevTools, this));
|
||||
}
|
||||
|
||||
#if !defined(OS_WIN)
|
||||
void CefBrowserImpl::SetOSModalLoop(bool osModalLoop) {
|
||||
}
|
||||
#endif
|
||||
|
||||
WebKit::WebGeolocationClient* CefBrowserImpl::UIT_GetGeolocationClient() {
|
||||
if (!geolocation_client_)
|
||||
geolocation_client_ = new CefGeolocationClient(this);
|
||||
|
|
|
@ -116,7 +116,6 @@ class CefBrowserImpl : public CefBrowser {
|
|||
OVERRIDE;
|
||||
virtual void SendFocusEvent(bool setFocus) OVERRIDE;
|
||||
virtual void SendCaptureLostEvent() OVERRIDE;
|
||||
virtual void SetOSModalLoop(bool osModalLoop) OVERRIDE;
|
||||
|
||||
// Frame-related methods
|
||||
void Undo(CefRefPtr<CefFrame> frame);
|
||||
|
|
|
@ -148,15 +148,6 @@ bool CefBrowserImpl::IsWindowRenderingDisabled() {
|
|||
return (window_info_.m_bWindowRenderingDisabled ? true : false);
|
||||
}
|
||||
|
||||
void CefBrowserImpl::SetOSModalLoop(bool osModalLoop) {
|
||||
if (CefThread::CurrentlyOn(CefThread::UI)) {
|
||||
MessageLoop::current()->set_os_modal_loop(osModalLoop);
|
||||
} else {
|
||||
CefThread::PostTask(CefThread::UI, FROM_HERE,
|
||||
base::Bind(&CefBrowserImpl::SetOSModalLoop, this, osModalLoop));
|
||||
}
|
||||
}
|
||||
|
||||
gfx::NativeWindow CefBrowserImpl::UIT_GetMainWndHandle() {
|
||||
REQUIRE_UIT();
|
||||
return window_info_.m_bWindowRenderingDisabled ?
|
||||
|
|
|
@ -60,7 +60,7 @@ base::StringPiece GetRawDataResource(HMODULE module, int resource_id) {
|
|||
: base::StringPiece();
|
||||
}
|
||||
|
||||
#endif // defined(OS_MACOSX)
|
||||
#endif // defined(OS_WIN)
|
||||
|
||||
} // namespace
|
||||
|
||||
|
@ -215,6 +215,23 @@ void CefQuitMessageLoop() {
|
|||
_Context->process()->QuitMessageLoop();
|
||||
}
|
||||
|
||||
void CefSetOSModalLoop(bool osModalLoop) {
|
||||
#if defined(OS_WIN)
|
||||
// Verify that the context is in a valid state.
|
||||
if (!CONTEXT_STATE_VALID()) {
|
||||
NOTREACHED() << "context not valid";
|
||||
return;
|
||||
}
|
||||
|
||||
if (CefThread::CurrentlyOn(CefThread::UI)) {
|
||||
MessageLoop::current()->set_os_modal_loop(osModalLoop);
|
||||
} else {
|
||||
CefThread::PostTask(CefThread::UI, FROM_HERE,
|
||||
base::Bind(CefSetOSModalLoop, osModalLoop));
|
||||
}
|
||||
#endif // defined(OS_WIN)
|
||||
}
|
||||
|
||||
|
||||
// CefContext
|
||||
|
||||
|
|
|
@ -717,19 +717,6 @@ void CEF_CALLBACK browser_send_capture_lost_event(struct _cef_browser_t* self) {
|
|||
CefBrowserCppToC::Get(self)->SendCaptureLostEvent();
|
||||
}
|
||||
|
||||
void CEF_CALLBACK browser_set_osmodal_loop(struct _cef_browser_t* self,
|
||||
int osModalLoop) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
|
||||
// Execute
|
||||
CefBrowserCppToC::Get(self)->SetOSModalLoop(
|
||||
osModalLoop?true:false);
|
||||
}
|
||||
|
||||
|
||||
// CONSTRUCTOR - Do not edit by hand.
|
||||
|
||||
|
@ -776,7 +763,6 @@ CefBrowserCppToC::CefBrowserCppToC(CefBrowser* cls)
|
|||
struct_.struct_.send_mouse_wheel_event = browser_send_mouse_wheel_event;
|
||||
struct_.struct_.send_focus_event = browser_send_focus_event;
|
||||
struct_.struct_.send_capture_lost_event = browser_send_capture_lost_event;
|
||||
struct_.struct_.set_osmodal_loop = browser_set_osmodal_loop;
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
|
|
|
@ -583,17 +583,6 @@ void CefBrowserCToCpp::SendCaptureLostEvent() {
|
|||
struct_->send_capture_lost_event(struct_);
|
||||
}
|
||||
|
||||
void CefBrowserCToCpp::SetOSModalLoop(bool osModalLoop) {
|
||||
if (CEF_MEMBER_MISSING(struct_, set_osmodal_loop))
|
||||
return;
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
struct_->set_osmodal_loop(struct_,
|
||||
osModalLoop);
|
||||
}
|
||||
|
||||
|
||||
#ifndef NDEBUG
|
||||
template<> long CefCToCpp<CefBrowserCToCpp, CefBrowser,
|
||||
|
|
|
@ -80,7 +80,6 @@ class CefBrowserCToCpp
|
|||
int deltaY) OVERRIDE;
|
||||
virtual void SendFocusEvent(bool setFocus) OVERRIDE;
|
||||
virtual void SendCaptureLostEvent() OVERRIDE;
|
||||
virtual void SetOSModalLoop(bool osModalLoop) OVERRIDE;
|
||||
};
|
||||
|
||||
#endif // USING_CEF_SHARED
|
||||
|
|
|
@ -199,6 +199,14 @@ CEF_EXPORT void cef_quit_message_loop() {
|
|||
CefQuitMessageLoop();
|
||||
}
|
||||
|
||||
CEF_EXPORT void cef_set_osmodal_loop(int osModalLoop) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
CefSetOSModalLoop(
|
||||
osModalLoop?true:false);
|
||||
}
|
||||
|
||||
CEF_EXPORT int cef_get_geolocation(
|
||||
struct _cef_get_geolocation_callback_t* callback) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
|
|
@ -201,6 +201,14 @@ CEF_GLOBAL void CefQuitMessageLoop() {
|
|||
cef_quit_message_loop();
|
||||
}
|
||||
|
||||
CEF_GLOBAL void CefSetOSModalLoop(bool osModalLoop) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
cef_set_osmodal_loop(
|
||||
osModalLoop);
|
||||
}
|
||||
|
||||
CEF_GLOBAL bool CefGetGeolocation(
|
||||
CefRefPtr<CefGetGeolocationCallback> callback) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
|
|
@ -606,16 +606,16 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
|
|||
break;
|
||||
|
||||
case WM_ENTERMENULOOP:
|
||||
if (!wParam && g_handler.get() && g_handler->GetBrowserHwnd()) {
|
||||
if (!wParam) {
|
||||
// Entering the menu loop for the application menu.
|
||||
g_handler->GetBrowser()->SetOSModalLoop(true);
|
||||
CefSetOSModalLoop(true);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_EXITMENULOOP:
|
||||
if (!wParam && g_handler.get() && g_handler->GetBrowserHwnd()) {
|
||||
if (!wParam) {
|
||||
// Exiting the menu loop for the application menu.
|
||||
g_handler->GetBrowser()->SetOSModalLoop(false);
|
||||
CefSetOSModalLoop(false);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue