GParamSpec*,
wxWebViewWebKit *webKitCtrl)
{
- // We can be called from webkit_web_view_dispose() during the window
- // destruction, don't use half-destroyed object in this case.
- if ( webKitCtrl->IsBeingDeleted() )
- return;
-
wxString url = webKitCtrl->GetCurrentURL();
WebKitLoadStatus status;
}
}
+#if WEBKIT_CHECK_VERSION(1, 10, 0)
+
+static gboolean
+wxgtk_webview_webkit_context_menu(WebKitWebView *,
+ GtkWidget *,
+ WebKitHitTestResult *,
+ gboolean,
+ wxWebViewWebKit *webKitCtrl)
+{
+ if(webKitCtrl->IsContextMenuEnabled())
+ return FALSE;
+ else
+ return TRUE;
+}
+
+#endif
+
} // extern "C"
//-----------------------------------------------------------------------------
wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewWebKit, wxWebView);
+wxWebViewWebKit::wxWebViewWebKit()
+{
+ m_web_view = NULL;
+}
+
bool wxWebViewWebKit::Create(wxWindow *parent,
wxWindowID id,
const wxString &url,
g_signal_connect_after(m_web_view, "resource-request-starting",
G_CALLBACK(wxgtk_webview_webkit_resource_req), this);
+
+#if WEBKIT_CHECK_VERSION(1, 10, 0)
+ g_signal_connect_after(m_web_view, "context-menu",
+ G_CALLBACK(wxgtk_webview_webkit_context_menu), this);
+#endif
m_parent->DoAddChild( this );
wxWebViewWebKit::~wxWebViewWebKit()
{
- // The main goal here is to set m_isBeingDeleted to true to avoid the use
- // of this -- already half-destroyed -- object from WebKit callbacks, but
- // just setting it would prevent wxWindowDestroyEvent from being sent, so
- // send it now instead.
- SendDestroyEvent();
+ if (m_web_view)
+ GTKDisconnect(m_web_view);
}
bool wxWebViewWebKit::Enable( bool enable )
m_handlerList.push_back(handler);
}
+void wxWebViewWebKit::EnableContextMenu(bool enable)
+{
+#if !WEBKIT_CHECK_VERSION(1, 10, 0) //If we are using an older version
+ g_object_set(webkit_web_view_get_settings(m_web_view),
+ "enable-default-context-menu", enable, NULL);
+#endif
+ wxWebView::EnableContextMenu(enable);
+}
+
long wxWebViewWebKit::Find(const wxString& text, int flags)
{
bool newSearch = false;
wxVisualAttributes
wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
{
- return GetDefaultAttributesFromGTKWidget(webkit_web_view_new);
+ return GetDefaultAttributesFromGTKWidget(webkit_web_view_new());
}