Add mouse function to play medias in external player
Control + left click launches mpv with the target media url.
This commit is contained in:
parent
26eb2f761c
commit
954a718197
|
@ -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 },
|
||||
};
|
||||
|
|
12
surf.c
12
surf.c
|
@ -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[])
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue