X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3225a4b8b8656f25dac6cb20684a3c2c273cf796..b54a0e3913d919ed1ed2b51acb0ebbe5e4c0bb11:/src/gtk/webview_webkit.cpp diff --git a/src/gtk/webview_webkit.cpp b/src/gtk/webview_webkit.cpp index 91973b1d5f..8b249a8062 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" @@ -18,7 +18,7 @@ #include "wx/gtk/private.h" #include "wx/filesys.h" #include "wx/base64.h" -#include "webkit/webkit.h" +#include // ---------------------------------------------------------------------------- // GTK callbacks @@ -43,6 +43,22 @@ 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.utf8_str(), + webKitCtrl->GetCurrentTitle().utf8_str() + ); + webkit_web_back_forward_list_add_item(hist, newitem); + } + webKitCtrl->m_busy = false; wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_LOADED, webKitCtrl->GetId(), @@ -357,7 +373,7 @@ wxgtk_webview_webkit_resource_req(WebKitWebView *, wxString mime = file->GetMimeType(); wxString path = "data:" + mime + ";base64," + data; //Then we can redirect the call - webkit_network_request_set_uri(request, path); + webkit_network_request_set_uri(request, path.utf8_str()); } } @@ -426,7 +442,7 @@ bool wxWebViewWebKit::Create(wxWindow *parent, PostCreation(size); /* Open a webpage */ - webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), url); + webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), url.utf8_str()); //Get the initial history limit so we can enable and disable it later WebKitWebBackForwardList* history; @@ -587,11 +603,9 @@ wxVector > wxWebViewWebKit::GetForwardHistory( void wxWebViewWebKit::LoadHistoryItem(wxSharedPtr item) { - WebKitWebHistoryItem* gtkitem = item->m_histItem; + WebKitWebHistoryItem* gtkitem = (WebKitWebHistoryItem*)item->m_histItem; if(gtkitem) { - WebKitWebBackForwardList* history; - history = webkit_web_view_get_back_forward_list(WEBKIT_WEB_VIEW(web_view)); webkit_web_view_go_to_back_forward_item(WEBKIT_WEB_VIEW(web_view), WEBKIT_WEB_HISTORY_ITEM(gtkitem)); } @@ -919,4 +933,4 @@ wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) } -#endif // wxHAVE_WEB_BACKEND_GTK_WEBKIT +#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT