commit 4d80194ac3977d6f31cb252e9b292f3db5a6736e
parent b81a1a82acba27076ed8217eec5734f4b803355c
Author: Marcin sZpak <szpak@reakcja.org>
Date: Sun, 3 Dec 2017 00:44:35 +0100
[surf] patch allow popup on user gestures
Diffstat:
2 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/surf.suckless.org/patches/popup-on-gesture.md b/surf.suckless.org/patches/popup-on-gesture.md
@@ -0,0 +1,18 @@
+Allow popup on gesture
+========================
+
+Description
+-----------
+
+Enable same-window popup on user gesture.
+(some pages don't work correctly without that, others redirect to spam pages though)
+
+Download
+--------
+
+* [surf-popup-2.0.diff](surf-popup-2.0.diff) (1037) (20171203)
+
+Author
+------
+
+* Marcin sZpak <[szpak@reakcja.org](mailto:szpak@reakcja.org)>
diff --git a/surf.suckless.org/patches/surf-popup-2.0.diff b/surf.suckless.org/patches/surf-popup-2.0.diff
@@ -0,0 +1,21 @@
+diff -up surf-2.0/surf.c surf/surf.c
+--- surf-2.0/surf.c 2017-11-26 14:29:37.963786915 +0100
++++ surf/surf.c 2017-12-03 00:20:07.314189414 +0100
+@@ -1183,12 +1183,13 @@ createview(WebKitWebView *v, WebKitNavig
+ switch (webkit_navigation_action_get_navigation_type(a)) {
+ case WEBKIT_NAVIGATION_TYPE_OTHER: /* fallthrough */
+ /*
+- * popup windows of type “other” are almost always triggered
+- * by user gesture, so inverse the logic here
++ * allow same-window popup triggered by user gesture
+ */
+-/* instead of this, compare destination uri to mouse-over uri for validating window */
+- if (webkit_navigation_action_is_user_gesture(a))
++ if (webkit_navigation_action_is_user_gesture(a)) {
++ Arg aa = {.v = webkit_uri_request_get_uri(webkit_navigation_action_get_request(a))};
++ loaduri((Client *) c, &aa);
+ return NULL;
++ }
+ case WEBKIT_NAVIGATION_TYPE_LINK_CLICKED: /* fallthrough */
+ case WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED: /* fallthrough */
+ case WEBKIT_NAVIGATION_TYPE_BACK_FORWARD: /* fallthrough */