From 7795f72123d8aced9247c512a708583cef62b95a Mon Sep 17 00:00:00 2001 From: Diego Escalante Urrelo Date: Wed, 24 Feb 2010 10:26:28 -0500 Subject: Correctly handle shit+click only in ephy-window If we handle shift+click in EphyWebView default handler then we will be preventing WebKit from getting *any* shift+click event, this breaks shift+click for extending selection. Removing that however makes shift+click browse to links just as click would do. The solution is to prevent policy_decision_required_cb to browse to the clicked link when it includes the shift modifier. Bug #610844 --- src/ephy-window.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/ephy-window.c') diff --git a/src/ephy-window.c b/src/ephy-window.c index 91f99307a..21ed75841 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2521,6 +2521,15 @@ policy_decision_required_cb (WebKitWebView *web_view, { flags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW; } + /* Because we connect to button-press-event *after* + * (G_CONNECT_AFTER) we need to prevent WebKit from browsing to + * a link when you shift+click it. Otherwise when you + * shift+click a link to download it you would also be taken to + * the link destination. */ + else if (button == 1 && state == GDK_SHIFT_MASK) + { + return TRUE; + } /* Those were our special cases, we won't handle this */ else { -- cgit v1.2.3