diff options
| -rw-r--r-- | config.def.h | 8 | ||||
| -rw-r--r-- | surf.c | 12 | 
2 files changed, 20 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h index 6d62c98..32ef407 100644 --- a/config.def.h +++ b/config.def.h @@ -65,6 +65,13 @@ static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE |  	} \  } +/* VIDEOPLAY(URI) */ +#define VIDEOPLAY(u) {\ +	.v = (const char *[]){ "/bin/sh", "-c", \ +	    "mpv --really-quiet \"$0\"", u, NULL \ +	} \ +} +  /* styles */  /*   * The iteration will stop at the first match, beginning at the beginning of @@ -142,4 +149,5 @@ static Button buttons[] = {  	{ OnLink,       MODKEY,         1,      clicknewwindow, { .b = 1 },     1 },  	{ OnAny,        0,              8,      clicknavigate,  { .i = -1 },    1 },  	{ OnAny,        0,              9,      clicknavigate,  { .i = +1 },    1 }, +	{ OnMedia,      MODKEY,         1,      clickexternplayer, { 0 },       1 },  }; @@ -178,6 +178,7 @@ static void find(Client *c, const Arg *a);  /* Buttons */  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 char winid[64];  static char togglestats[10]; @@ -1462,6 +1463,17 @@ clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h)  	newwindow(c, &arg, a->b);  } +void +clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h) +{ +	Arg arg; + +	if (webkit_hit_test_result_get_context(h) & OnMedia) { +		arg = (Arg)VIDEOPLAY(webkit_hit_test_result_get_media_uri(h)); +		spawn(c, &arg); +	} +} +  int  main(int argc, char *argv[])  {  | 
