X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e669ddde233a87d1e80ce2b102d0a18ce9daedfe..f559d1a23c71252b698badf63e4685a3abfa1712:/src/gtk/webview_webkit.cpp diff --git a/src/gtk/webview_webkit.cpp b/src/gtk/webview_webkit.cpp index 8fb93faada..08199cd778 100644 --- a/src/gtk/webview_webkit.cpp +++ b/src/gtk/webview_webkit.cpp @@ -10,7 +10,7 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#if wxUSE_WEBVIEW_WEBKIT +#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT #include "wx/stockitem.h" #include "wx/gtk/webview_webkit.h" @@ -43,10 +43,21 @@ wxgtk_webview_webkit_load_status(GtkWidget* widget, if (status == WEBKIT_LOAD_FINISHED) { + WebKitWebBackForwardList* hist = webkit_web_view_get_back_forward_list(WEBKIT_WEB_VIEW(widget)); + WebKitWebHistoryItem* item = webkit_web_back_forward_list_get_current_item(hist); + //We have to check if we are actually storing history + //If the item isn't added we add it ourselves, it isn't added otherwise + //with a custom scheme. + if(WEBKIT_IS_WEB_HISTORY_ITEM(item) && webkit_web_history_item_get_uri(item) != url) + { + WebKitWebHistoryItem* newitem = webkit_web_history_item_new_with_data(url, webKitCtrl->GetCurrentTitle()); + webkit_web_back_forward_list_add_item(hist, newitem); + } + webKitCtrl->m_busy = false; wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_LOADED, webKitCtrl->GetId(), - url, target, false); + url, target); if (webKitCtrl && webKitCtrl->GetEventHandler()) webKitCtrl->GetEventHandler()->ProcessEvent(event); @@ -56,7 +67,7 @@ wxgtk_webview_webkit_load_status(GtkWidget* widget, webKitCtrl->m_busy = true; wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATED, webKitCtrl->GetId(), - url, target, false); + url, target); if (webKitCtrl && webKitCtrl->GetEventHandler()) webKitCtrl->GetEventHandler()->ProcessEvent(event); @@ -89,13 +100,12 @@ wxgtk_webview_webkit_navigation(WebKitWebView *, wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NAVIGATING, webKitCtrl->GetId(), wxString( uri, wxConvUTF8 ), - target, - true); + target); if (webKitCtrl && webKitCtrl->GetEventHandler()) webKitCtrl->GetEventHandler()->ProcessEvent(event); - if (event.IsVetoed()) + if (!event.IsAllowed()) { webKitCtrl->m_busy = false; webkit_web_policy_decision_ignore(policy_decision); @@ -262,7 +272,7 @@ wxgtk_webview_webkit_error(WebKitWebView*, wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_ERROR, webKitWindow->GetId(), - uri, "", false); + uri, ""); event.SetString(description); event.SetInt(type); @@ -288,8 +298,7 @@ wxgtk_webview_webkit_new_window(WebKitWebView*, wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, webKitCtrl->GetId(), wxString( uri, wxConvUTF8 ), - target, - true); + target); if (webKitCtrl && webKitCtrl->GetEventHandler()) webKitCtrl->GetEventHandler()->ProcessEvent(event); @@ -308,7 +317,7 @@ wxgtk_webview_webkit_title_changed(WebKitWebView*, wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, webKitCtrl->GetId(), webKitCtrl->GetCurrentURL(), - "", true); + ""); event.SetString(wxString(title, wxConvUTF8)); if (webKitCtrl && webKitCtrl->GetEventHandler()) @@ -497,7 +506,7 @@ void wxWebViewWebKit::Reload(wxWebViewReloadFlags flags) } } -void wxWebViewWebKit::LoadUrl(const wxString& url) +void wxWebViewWebKit::LoadURL(const wxString& url) { webkit_web_view_load_uri(WEBKIT_WEB_VIEW(web_view), wxGTK_CONV(url)); } @@ -921,4 +930,4 @@ wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) } -#endif // wxHAVE_WEB_BACKEND_GTK_WEBKIT +#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT