// 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"
#include "wx/gtk/private.h"
#include "wx/filesys.h"
#include "wx/base64.h"
-#include "webkit/webkit.h"
+#include <webkit/webkit.h>
// ----------------------------------------------------------------------------
// GTK callbacks
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(),
- url, target, false);
+ url, target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
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);
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);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_ERROR,
webKitWindow->GetId(),
- uri, "", false);
+ uri, "");
event.SetString(description);
event.SetInt(type);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW,
webKitCtrl->GetId(),
wxString( uri, wxConvUTF8 ),
- target,
- true);
+ target);
if (webKitCtrl && webKitCtrl->GetEventHandler())
webKitCtrl->GetEventHandler()->ProcessEvent(event);
wxWebViewEvent event(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED,
webKitCtrl->GetId(),
webKitCtrl->GetCurrentURL(),
- "", true);
+ "");
event.SetString(wxString(title, wxConvUTF8));
if (webKitCtrl && webKitCtrl->GetEventHandler())
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());
}
}
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;
}
}
-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));
}
void wxWebViewWebKit::LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> 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));
}
}
-#endif // wxHAVE_WEB_BACKEND_GTK_WEBKIT
+#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT