[epiphany] Align hotkeys + click actions at common browser standard



commit 7939d003b6bb0869330f83bef75c973ff7904908
Author: Jan-Michael Brummer <jan brummer tabos org>
Date:   Tue Dec 25 00:58:34 2018 +0100

    Align hotkeys + click actions at common browser standard
    
    * Ctrl + Shift + Left Click = Open in new tab and make it active
    * Ctrl + Left Click = Open in new tab
    * Shift + Left Click = Open in new window
    * Alt + Left Click = Download link
    
    Fixes: https://gitlab.gnome.org/GNOME/epiphany/issues/493

 src/ephy-window.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/src/ephy-window.c b/src/ephy-window.c
index f8279c0b3..d1583a81d 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -2043,20 +2043,25 @@ decide_navigation_policy (WebKitWebView            *web_view,
     ephy_web_view_set_visit_type (EPHY_WEB_VIEW (web_view),
                                   EPHY_PAGE_VISIT_LINK);
 
-    /* New tab in new window for control+shift+click */
-    if (button == 1 && state == (GDK_SHIFT_MASK | GDK_CONTROL_MASK) &&
+    /* New tab in new window for shift+click */
+    if (button == GDK_BUTTON_PRIMARY && state == GDK_SHIFT_MASK &&
         !g_settings_get_boolean (EPHY_SETTINGS_LOCKDOWN,
                                  EPHY_PREFS_LOCKDOWN_FULLSCREEN)) {
       target_window = ephy_window_new ();
     }
-    /* New tab in existing window for middle click and
+    /* New background tab in existing window for middle click and
      * control+click */
-    else if (button == 2 || (button == 1 && state == GDK_CONTROL_MASK)) {
+    else if (button == GDK_BUTTON_MIDDLE ||
+            (button == GDK_BUTTON_PRIMARY && (state == GDK_CONTROL_MASK))) {
+      flags |= EPHY_NEW_TAB_APPEND_AFTER;
+    }
+    /* New active tab in existing window for control+shift+click */
+    else if (button == GDK_BUTTON_PRIMARY && (state == (GDK_SHIFT_MASK | GDK_CONTROL_MASK))) {
       flags |= EPHY_NEW_TAB_APPEND_AFTER;
       inherit_session = TRUE;
     }
-    /* Shift+click means download URI */
-    else if (button == 1 && state == GDK_SHIFT_MASK) {
+    /* Alt+click means download URI */
+    else if (button == GDK_BUTTON_PRIMARY && state == GDK_MOD1_MASK) {
       if (save_target_uri (window, web_view)) {
         webkit_policy_decision_ignore (decision);
         return TRUE;
@@ -2084,6 +2089,9 @@ decide_navigation_policy (WebKitWebView            *web_view,
       session_state = webkit_web_view_get_session_state (web_view);
       webkit_web_view_restore_session_state (WEBKIT_WEB_VIEW (new_view), session_state);
       webkit_web_view_session_state_unref (session_state);
+
+      if (button == GDK_BUTTON_PRIMARY)
+        ephy_embed_container_set_active_child (EPHY_EMBED_CONTAINER (window), new_embed);
     }
     ephy_web_view_load_request (new_view, request);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]