我想在Ubuntu 20.04上以全屏模式启动cefsimple应用程序(作为cef smaple项目)。
从Spotify AutoBuild下载cef,然后将代码添加到cefsimple项目中的OnWindowCreated或OnAfterCreated中。但似乎不起作用。有人有好的想法吗?谢谢
/* simple_app.cc */
class SimpleWindowDelegate : public CefWindowDelegate {
public:
explicit SimpleWindowDelegate(CefRefPtr<CefBrowserView> browser_view)
: browser_view_(browser_view) {}
void OnWindowCreated(CefRefPtr<CefWindow> window) override {
// Add the browser view and show the window.
window->AddChildView(browser_view_);
window->Show();
// BEG: added
window->SetFullscreen(true);
// END
// Give keyboard focus to the browser view.
browser_view_->RequestFocus();
}
/* simple_handler.cc */
void SimpleHandler::OnAfterCreated(CefRefPtr<CefBrowser> browser) {
CEF_REQUIRE_UI_THREAD();
// Add to the list of existing browsers.
browser_list_.push_back(browser);
// BEG: added
CefRefPtr<CefBrowserView> browser_view = CefBrowserView::GetForBrowser(browser);
if (browser_view) {
CefRefPtr<CefWindow> window = browser_view->GetWindow();
if (window) {
window->SetFullscreen(true);
}
}
// END
}
1条答案
按热度按时间nr9pn0ug1#
我还努力使窗口全屏。最后我做的是通过X11 API最大化窗口。
试试这个:
然后,只需在
OnAfterCreated
方法中调用makeBrowserWindowFullScreen(browser)
:更新
makeBrowserWindowFullscreen
的另一种实现可以通过发送_NET_WM_STATE_FULLSCREEN
消息来最大化窗口: