cefsimple: Fix sizing of popup windows with --use-views (see issue #2854)

This commit is contained in:
Marshall Greenblatt 2020-01-27 20:35:02 -05:00
parent 9df4a54308
commit c3d4f24720
1 changed files with 23 additions and 1 deletions

View File

@ -54,6 +54,27 @@ class SimpleWindowDelegate : public CefWindowDelegate {
DISALLOW_COPY_AND_ASSIGN(SimpleWindowDelegate); DISALLOW_COPY_AND_ASSIGN(SimpleWindowDelegate);
}; };
class SimpleBrowserViewDelegate : public CefBrowserViewDelegate {
public:
SimpleBrowserViewDelegate() {}
bool OnPopupBrowserViewCreated(CefRefPtr<CefBrowserView> browser_view,
CefRefPtr<CefBrowserView> popup_browser_view,
bool is_devtools) OVERRIDE {
// Create a new top-level Window for the popup. It will show itself after
// creation.
CefWindow::CreateTopLevelWindow(
new SimpleWindowDelegate(popup_browser_view));
// We created the Window.
return true;
}
private:
IMPLEMENT_REFCOUNTING(SimpleBrowserViewDelegate);
DISALLOW_COPY_AND_ASSIGN(SimpleBrowserViewDelegate);
};
} // namespace } // namespace
SimpleApp::SimpleApp() {} SimpleApp::SimpleApp() {}
@ -91,7 +112,8 @@ void SimpleApp::OnContextInitialized() {
if (use_views) { if (use_views) {
// Create the BrowserView. // Create the BrowserView.
CefRefPtr<CefBrowserView> browser_view = CefBrowserView::CreateBrowserView( CefRefPtr<CefBrowserView> browser_view = CefBrowserView::CreateBrowserView(
handler, url, browser_settings, nullptr, nullptr, nullptr); handler, url, browser_settings, nullptr, nullptr,
new SimpleBrowserViewDelegate());
// Create the Window. It will show itself after creation. // Create the Window. It will show itself after creation.
CefWindow::CreateTopLevelWindow(new SimpleWindowDelegate(browser_view)); CefWindow::CreateTopLevelWindow(new SimpleWindowDelegate(browser_view));