diff --git a/src/common/webview_chromium.cpp b/src/common/webview_chromium.cpp index 58d4087b2b..a924961317 100644 --- a/src/common/webview_chromium.cpp +++ b/src/common/webview_chromium.cpp @@ -160,7 +160,24 @@ public: const CefString& errorText, const CefString& failedUrl) override; - CefRefPtr GetBrowser() { return m_browser; } + CefRefPtr GetBrowser() const { return m_browser; } + + // Return the underlying window handle: HWND under MSW, X11 Window under + // GTK. + // + // The handle can be 0. + CefWindowHandle GetWindowHandle() const + { + auto browser = GetBrowser(); + if ( !browser ) + return 0; + + auto host = browser->GetHost(); + if ( !host ) + return 0; + + return host->GetWindowHandle(); + } private: CefRefPtr m_browser; @@ -530,17 +547,7 @@ void wxWebViewChromium::OnSize(wxSizeEvent& event) { event.Skip(); - CefRefPtr host; - if ( m_clientHandler ) - { - if ( auto browser = m_clientHandler->GetBrowser() ) - host = browser->GetHost(); - } - - if ( !host ) - return; - - auto handle = host->GetWindowHandle(); + const auto handle = m_clientHandler ? m_clientHandler->GetWindowHandle() : 0; if ( !handle ) return;