From 1aad333ab93e938f61ada73df55390f01cb7f2b3 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Tue, 9 Feb 2021 21:11:14 +0100 Subject: [PATCH] Don't send wxWebViewEdge cancel event on veto When vetoing a wxEVT_WEBVIEW_NAVIGATING a wxEVT_WEBVIEW_ERROR was send this was unexpected and unnecessary. --- src/msw/webview_edge.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 00b3efa62d..7bbf28276f 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -205,6 +205,7 @@ HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(ICoreWebView2* WXUNUSED(sender) if (!isSuccess) { COREWEBVIEW2_WEB_ERROR_STATUS status; + bool ignoreStatus = false; wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, m_ctrl->GetId(), uri, wxString()); event.SetEventObject(m_ctrl); @@ -227,12 +228,16 @@ HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(ICoreWebView2* WXUNUSED(sender) WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) WX_ERROR2_CASE(COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) + case COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED: + // This status is triggered by vetoing a wxEVT_WEBVIEW_NAVIGATING event + ignoreStatus = true; + break; } } - m_ctrl->HandleWindowEvent(event); + if (!ignoreStatus) + m_ctrl->HandleWindowEvent(event); } else {