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