Implement title changed event
This commit is contained in:
@@ -36,11 +36,13 @@ public:
|
|||||||
EventRegistrationToken m_navigationStartingToken = { };
|
EventRegistrationToken m_navigationStartingToken = { };
|
||||||
EventRegistrationToken m_navigationCompletedToken = { };
|
EventRegistrationToken m_navigationCompletedToken = { };
|
||||||
EventRegistrationToken m_newWindowRequestedToken = { };
|
EventRegistrationToken m_newWindowRequestedToken = { };
|
||||||
|
EventRegistrationToken m_documentTitleChangedToken = { };
|
||||||
|
|
||||||
// WebView Event handlers
|
// WebView Event handlers
|
||||||
HRESULT OnNavigationStarting(IWebView2WebView* sender, IWebView2NavigationStartingEventArgs* args);
|
HRESULT OnNavigationStarting(IWebView2WebView* sender, IWebView2NavigationStartingEventArgs* args);
|
||||||
HRESULT OnNavigationCompleted(IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args);
|
HRESULT OnNavigationCompleted(IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args);
|
||||||
HRESULT OnNewWindowRequested(IWebView2WebView* sender, IWebView2NewWindowRequestedEventArgs* args);
|
HRESULT OnNewWindowRequested(IWebView2WebView* sender, IWebView2NewWindowRequestedEventArgs* args);
|
||||||
|
HRESULT OnDocumentTitleChanged(IWebView2WebView* sender, IUnknown* args);
|
||||||
|
|
||||||
HRESULT OnEnvironmentCreated(HRESULT result, IWebView2Environment* environment);
|
HRESULT OnEnvironmentCreated(HRESULT result, IWebView2Environment* environment);
|
||||||
HRESULT OnWebViewCreated(HRESULT result, IWebView2WebView* webview);
|
HRESULT OnWebViewCreated(HRESULT result, IWebView2WebView* webview);
|
||||||
|
@@ -69,6 +69,7 @@ wxWebViewEdgeImpl::~wxWebViewEdgeImpl()
|
|||||||
m_webView->remove_NavigationCompleted(m_navigationCompletedToken);
|
m_webView->remove_NavigationCompleted(m_navigationCompletedToken);
|
||||||
m_webView->remove_NavigationStarting(m_navigationStartingToken);
|
m_webView->remove_NavigationStarting(m_navigationStartingToken);
|
||||||
m_webView->remove_NewWindowRequested(m_newWindowRequestedToken);
|
m_webView->remove_NewWindowRequested(m_newWindowRequestedToken);
|
||||||
|
m_webView->remove_DocumentTitleChanged(m_documentTitleChangedToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,6 +256,16 @@ HRESULT wxWebViewEdgeImpl::OnNewWindowRequested(IWebView2WebView* WXUNUSED(sende
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT wxWebViewEdgeImpl::OnDocumentTitleChanged(IWebView2WebView* WXUNUSED(sender), IUnknown* WXUNUSED(args))
|
||||||
|
{
|
||||||
|
wxWebViewEvent event(wxEVT_WEBVIEW_TITLE_CHANGED,
|
||||||
|
m_ctrl->GetId(), m_ctrl->GetCurrentURL(), "");
|
||||||
|
event.SetString(m_ctrl->GetCurrentTitle());
|
||||||
|
event.SetEventObject(m_ctrl);
|
||||||
|
m_ctrl->HandleWindowEvent(event);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* webview)
|
HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* webview)
|
||||||
{
|
{
|
||||||
if (FAILED(result))
|
if (FAILED(result))
|
||||||
@@ -281,6 +292,10 @@ HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* we
|
|||||||
Callback<IWebView2NewWindowRequestedEventHandler>(
|
Callback<IWebView2NewWindowRequestedEventHandler>(
|
||||||
this, &wxWebViewEdgeImpl::OnNewWindowRequested).Get(),
|
this, &wxWebViewEdgeImpl::OnNewWindowRequested).Get(),
|
||||||
&m_newWindowRequestedToken);
|
&m_newWindowRequestedToken);
|
||||||
|
m_webView->add_DocumentTitleChanged(
|
||||||
|
Callback<IWebView2DocumentTitleChangedEventHandler>(
|
||||||
|
this, &wxWebViewEdgeImpl::OnDocumentTitleChanged).Get(),
|
||||||
|
&m_documentTitleChangedToken);
|
||||||
|
|
||||||
if (!m_pendingURL.empty())
|
if (!m_pendingURL.empty())
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user