mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-08 08:08:45 +01:00
Revert "Fix dismissal of select popups on NotifyMoveOrResizeStarted (see issue #3294)"
This reverts commit 5f4bccd672c1ed745218a9d756e430f0164fd3ba. Reason for revert: This change causes a native parented browser to lose focus on move (fixes issue #3426).
This commit is contained in:
parent
f77a7a7336
commit
2567ca15a9
@ -261,12 +261,15 @@ void CefBrowserPlatformDelegateAlloy::SendCaptureLostEvent() {
|
||||
|
||||
#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC))
|
||||
void CefBrowserPlatformDelegateAlloy::NotifyMoveOrResizeStarted() {
|
||||
if (!web_contents_) {
|
||||
if (!browser_) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Dismiss any existing popups.
|
||||
web_contents_->ClearFocusedElement();
|
||||
auto frame = browser_->GetMainFrame();
|
||||
if (frame && frame->IsValid()) {
|
||||
static_cast<CefFrameHostImpl*>(frame.get())->NotifyMoveOrResizeStarted();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -304,6 +304,13 @@ void CefFrameHostImpl::RefreshAttributes() {
|
||||
}
|
||||
}
|
||||
|
||||
void CefFrameHostImpl::NotifyMoveOrResizeStarted() {
|
||||
SendToRenderFrame(__FUNCTION__,
|
||||
base::BindOnce([](const RenderFrameType& render_frame) {
|
||||
render_frame->MoveOrResizeStarted();
|
||||
}));
|
||||
}
|
||||
|
||||
void CefFrameHostImpl::LoadRequest(cef::mojom::RequestParamsPtr params) {
|
||||
if (!url_util::FixupGURL(params->url)) {
|
||||
return;
|
||||
|
@ -82,6 +82,10 @@ class CefFrameHostImpl : public CefFrame, public cef::mojom::BrowserFrame {
|
||||
void SetFocused(bool focused);
|
||||
void RefreshAttributes();
|
||||
|
||||
// Notification that a move or resize of the renderer's containing window has
|
||||
// started. Used on Windows and Linux with the Alloy runtime.
|
||||
void NotifyMoveOrResizeStarted();
|
||||
|
||||
// Load the specified request.
|
||||
void LoadRequest(cef::mojom::RequestParamsPtr params);
|
||||
|
||||
|
@ -79,6 +79,10 @@ interface RenderFrame {
|
||||
|
||||
// Loading has stopped.
|
||||
DidStopLoading();
|
||||
|
||||
// Move or resize of the renderer's containing window has started. Used on
|
||||
// Windows and Linux with the Alloy runtime.
|
||||
MoveOrResizeStarted();
|
||||
};
|
||||
|
||||
// Interface for communicating with a frame in the browser process.
|
||||
|
@ -832,6 +832,14 @@ void CefFrameImpl::DidStopLoading() {
|
||||
}
|
||||
}
|
||||
|
||||
void CefFrameImpl::MoveOrResizeStarted() {
|
||||
if (frame_) {
|
||||
auto web_view = frame_->View();
|
||||
if (web_view)
|
||||
web_view->CancelPagePopup();
|
||||
}
|
||||
}
|
||||
|
||||
void CefFrameImpl::ContextLifecycleStateChanged(
|
||||
blink::mojom::blink::FrameLifecycleState state) {
|
||||
if (state == blink::mojom::FrameLifecycleState::kFrozen && IsMain() &&
|
||||
|
@ -162,6 +162,7 @@ class CefFrameImpl
|
||||
int32_t startLine) override;
|
||||
void LoadRequest(cef::mojom::RequestParamsPtr params) override;
|
||||
void DidStopLoading() override;
|
||||
void MoveOrResizeStarted() override;
|
||||
|
||||
// blink_glue::CefExecutionContextLifecycleStateObserver methods:
|
||||
void ContextLifecycleStateChanged(
|
||||
|
Loading…
x
Reference in New Issue
Block a user