77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#if !BAR_DWMBLOCKS_PATCH
 | 
						|
static const char statusexport[] = "export BUTTON=-;";
 | 
						|
static int statuscmdn;
 | 
						|
static int lastbutton;
 | 
						|
#endif // BAR_DWMBLOCKS_PATCH
 | 
						|
 | 
						|
int
 | 
						|
click_statuscmd(Bar *bar, Arg *arg, BarClickArg *a)
 | 
						|
{
 | 
						|
	return click_statuscmd_text(arg, a->rel_x, rawstext);
 | 
						|
}
 | 
						|
 | 
						|
#if BAR_EXTRASTATUS_PATCH
 | 
						|
int
 | 
						|
click_statuscmd_es(Bar *bar, Arg *arg, BarClickArg *a)
 | 
						|
{
 | 
						|
	return click_statuscmd_text(arg, a->rel_x, rawestext);
 | 
						|
}
 | 
						|
#endif // BAR_EXTRASTATUS_PATCH
 | 
						|
 | 
						|
int
 | 
						|
click_statuscmd_text(Arg *arg, int rel_x, char *text)
 | 
						|
{
 | 
						|
	int i = -1;
 | 
						|
	int x = 0;
 | 
						|
	char ch;
 | 
						|
	#if BAR_DWMBLOCKS_PATCH
 | 
						|
	dwmblockssig = -1;
 | 
						|
	#else
 | 
						|
	statuscmdn = 0;
 | 
						|
	#endif // BAR_DWMBLOCKS_PATCH
 | 
						|
	while (text[++i]) {
 | 
						|
		if ((unsigned char)text[i] < ' ') {
 | 
						|
			ch = text[i];
 | 
						|
			text[i] = '\0';
 | 
						|
			#if BAR_STATUS2D_PATCH && !BAR_BAR_STATUSCOLORS_PATCH
 | 
						|
			x += status2dtextlength(text);
 | 
						|
			#elif BAR_PANGO_PATCH
 | 
						|
			x += TEXTWM(text) - lrpad;
 | 
						|
			#else
 | 
						|
			x += TEXTW(text) - lrpad;
 | 
						|
			#endif // STATUS2D_PATCH
 | 
						|
			text[i] = ch;
 | 
						|
			text += i+1;
 | 
						|
			i = -1;
 | 
						|
			#if BAR_DWMBLOCKS_PATCH
 | 
						|
			if (x >= rel_x && dwmblockssig != -1)
 | 
						|
				break;
 | 
						|
			dwmblockssig = ch;
 | 
						|
			#else
 | 
						|
			if (x >= rel_x)
 | 
						|
				break;
 | 
						|
			if (ch <= LENGTH(statuscmds))
 | 
						|
				statuscmdn = ch - 1;
 | 
						|
			#endif // BAR_DWMBLOCKS_PATCH
 | 
						|
		}
 | 
						|
	}
 | 
						|
	#if BAR_DWMBLOCKS_PATCH
 | 
						|
	if (dwmblockssig == -1)
 | 
						|
		dwmblockssig = 0;
 | 
						|
	#endif // BAR_DWMBLOCKS_PATCH
 | 
						|
	return ClkStatusText;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
copyvalidchars(char *text, char *rawtext)
 | 
						|
{
 | 
						|
	int i = -1, j = 0;
 | 
						|
 | 
						|
	while (rawtext[++i]) {
 | 
						|
		if ((unsigned char)rawtext[i] >= ' ') {
 | 
						|
			text[j++] = rawtext[i];
 | 
						|
		}
 | 
						|
	}
 | 
						|
	text[j] = '\0';
 | 
						|
}
 |