epiphany r8938 - trunk/src
- From: xan svn gnome org
- To: svn-commits-list gnome org
- Subject: epiphany r8938 - trunk/src
- Date: Wed, 25 Mar 2009 12:03:34 +0000 (UTC)
Author: xan
Date: Wed Mar 25 12:03:34 2009
New Revision: 8938
URL: http://svn.gnome.org/viewvc/epiphany?rev=8938&view=rev
Log:
ephy-window: use new-window-policy-decision-requested signal.
Patch by Alejandro G. Castro.
Allows to open links with target=_blank in a new tab by clicking with
the middle button.
Requires WebKitGTK+ r41969.
Fixes #573357.
Modified:
trunk/src/ephy-window.c
Modified: trunk/src/ephy-window.c
==============================================================================
--- trunk/src/ephy-window.c (original)
+++ trunk/src/ephy-window.c Wed Mar 25 12:03:34 2009
@@ -2532,12 +2532,12 @@
}
static gboolean
-navigation_policy_decision_required_cb (WebKitWebView *web_view,
- WebKitWebFrame *web_frame,
- WebKitNetworkRequest *request,
- WebKitWebNavigationAction *action,
- WebKitWebPolicyDecision *decision,
- EphyWindow *window)
+policy_decision_required_cb (WebKitWebView *web_view,
+ WebKitWebFrame *web_frame,
+ WebKitNetworkRequest *request,
+ WebKitWebNavigationAction *action,
+ WebKitWebPolicyDecision *decision,
+ EphyWindow *window)
{
WebKitWebNavigationReason reason;
gint button;
@@ -2681,6 +2681,7 @@
if (old_embed != NULL)
{
WebKitWebView *web_view;
+ guint sid;
embed = old_embed;
web_view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
@@ -2694,9 +2695,24 @@
g_signal_handlers_disconnect_by_func (web_view,
G_CALLBACK (create_web_view_cb),
window);
- g_signal_handlers_disconnect_by_func (web_view,
- G_CALLBACK (navigation_policy_decision_required_cb),
- window);
+ sid = g_signal_lookup ("navigation-policy-decision-requested",
+ WEBKIT_TYPE_WEB_VIEW);
+ g_signal_handlers_disconnect_matched (web_view,
+ G_SIGNAL_MATCH_ID |
+ G_SIGNAL_MATCH_FUNC,
+ sid,
+ 0, NULL,
+ G_CALLBACK (policy_decision_required_cb),
+ NULL);
+ sid = g_signal_lookup ("new-window-policy-decision-requested",
+ WEBKIT_TYPE_WEB_VIEW);
+ g_signal_handlers_disconnect_matched (web_view,
+ G_SIGNAL_MATCH_ID |
+ G_SIGNAL_MATCH_FUNC,
+ sid,
+ 0, NULL,
+ G_CALLBACK (policy_decision_required_cb),
+ NULL);
g_signal_handlers_disconnect_by_func (embed,
G_CALLBACK (sync_tab_popup_windows),
@@ -2785,7 +2801,10 @@
G_CALLBACK (create_web_view_cb),
window, 0);
g_signal_connect_object (web_view, "navigation-policy-decision-requested",
- G_CALLBACK (navigation_policy_decision_required_cb),
+ G_CALLBACK (policy_decision_required_cb),
+ window, 0);
+ g_signal_connect_object (web_view, "new-window-policy-decision-requested",
+ G_CALLBACK (policy_decision_required_cb),
window, 0);
g_signal_connect_object (embed, "notify::hidden-popup-count",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]