commit b5569b51333ff3c2a316972f19111dbbc75b0689
parent 3d2a8e52f61e1f7872e426e1535bfd46c4cb7f05
Author: 0x1bi <ben@0x1bi.net>
Date: Sat, 15 Aug 2020 11:24:36 -0400
[surf][patch][middleclickplumb] fix plumbing for browser selection only
Diffstat:
3 files changed, 61 insertions(+), 57 deletions(-)
diff --git a/surf.suckless.org/patches/middle-click-plumb/index.md b/surf.suckless.org/patches/middle-click-plumb/index.md
@@ -9,7 +9,7 @@ Middle click link or text selection to send it to plumber.
Download
--------
- * [surf-middleclickplumb-20200814-5544643.diff](surf-middleclickplumb-20200814-5544643.diff)
+ * [surf-middleclickplumb-20200815-23cefcc.diff](surf-middleclickplumb-20200815-23cefcc.diff)
Author
------
diff --git a/surf.suckless.org/patches/middle-click-plumb/surf-middleclickplumb-20200814-5544643.diff b/surf.suckless.org/patches/middle-click-plumb/surf-middleclickplumb-20200814-5544643.diff
@@ -1,56 +0,0 @@
-From 5544643861b3c7a6eec31ea413242bf224557e14 Mon Sep 17 00:00:00 2001
-From: 0x1bi <ben@0x1bi.net>
-Date: Fri, 14 Aug 2020 21:35:22 -0400
-Subject: [PATCH] added middle click plumb functionality
-
----
- config.def.h | 2 +-
- surf.c | 12 ++++++++++++
- 2 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/config.def.h b/config.def.h
-index 34265f6..01d040a 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -186,7 +186,7 @@ static Key keys[] = {
- /* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */
- static Button buttons[] = {
- /* target event mask button function argument stop event */
-- { OnLink, 0, 2, clicknewwindow, { .i = 0 }, 1 },
-+ { OnAny, 0, 2, clickplumb, { .i = 0 }, 1 },
- { OnLink, MODKEY, 2, clicknewwindow, { .i = 1 }, 1 },
- { OnLink, MODKEY, 1, clicknewwindow, { .i = 1 }, 1 },
- { OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 },
-diff --git a/surf.c b/surf.c
-index 2b54e3c..04b7688 100644
---- a/surf.c
-+++ b/surf.c
-@@ -236,6 +236,7 @@ static void find(Client *c, const Arg *a);
- static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h);
- static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
- static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
-+static void clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h);
-
- static char winid[64];
- static char togglestats[12];
-@@ -1971,6 +1972,17 @@ clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h)
- spawn(c, &arg);
- }
-
-+void
-+clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h)
-+{
-+ Arg arg;
-+
-+ char *s = gtk_clipboard_wait_for_text(gtk_clipboard_get(GDK_SELECTION_PRIMARY));
-+
-+ arg = (Arg)PLUMB(s ? s : webkit_hit_test_result_get_link_uri(h));
-+ spawn(c, &arg);
-+}
-+
- int
- main(int argc, char *argv[])
- {
---
-2.26.2
-
diff --git a/surf.suckless.org/patches/middle-click-plumb/surf-middleclickplumb-20200815-23cefcc.diff b/surf.suckless.org/patches/middle-click-plumb/surf-middleclickplumb-20200815-23cefcc.diff
@@ -0,0 +1,60 @@
+From 23cefcc76ac69c5648be54c294ea14d5b09a9028 Mon Sep 17 00:00:00 2001
+From: 0x1bi <ben@0x1bi.net>
+Date: Sat, 15 Aug 2020 11:20:13 -0400
+Subject: [PATCH] added middle click to plumb functionality
+
+---
+ config.def.h | 2 +-
+ surf.c | 16 ++++++++++++++++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/config.def.h b/config.def.h
+index 34265f6..01d040a 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -186,7 +186,7 @@ static Key keys[] = {
+ /* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */
+ static Button buttons[] = {
+ /* target event mask button function argument stop event */
+- { OnLink, 0, 2, clicknewwindow, { .i = 0 }, 1 },
++ { OnAny, 0, 2, clickplumb, { .i = 0 }, 1 },
+ { OnLink, MODKEY, 2, clicknewwindow, { .i = 1 }, 1 },
+ { OnLink, MODKEY, 1, clicknewwindow, { .i = 1 }, 1 },
+ { OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 },
+diff --git a/surf.c b/surf.c
+index 2b54e3c..0a4a601 100644
+--- a/surf.c
++++ b/surf.c
+@@ -236,6 +236,7 @@ static void find(Client *c, const Arg *a);
+ static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h);
+ static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
+ static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
++static void clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h);
+
+ static char winid[64];
+ static char togglestats[12];
+@@ -1971,6 +1972,21 @@ clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h)
+ spawn(c, &arg);
+ }
+
++void
++clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h)
++{
++ Arg arg;
++
++ char *s;
++ WebKitHitTestResultContext e = webkit_hit_test_result_get_context(h);
++ if (e == 2)
++ return;
++ s = e == 6 ? s = webkit_hit_test_result_get_link_uri(h) : gtk_clipboard_wait_for_text(gtk_clipboard_get(GDK_SELECTION_PRIMARY));
++
++ arg = (Arg)PLUMB(s);
++ spawn(c, &arg);
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+--
+2.26.2
+