Merge pull request #66 from LukeSmithxyz/revert-62-fast-scrolling-fix
Revert "Mitigates disappearing blocks on fast mouse interaction"
This commit is contained in:
commit
7892511501
1 changed files with 6 additions and 21 deletions
27
dwmblocks.c
27
dwmblocks.c
|
@ -13,7 +13,6 @@ typedef struct {
|
||||||
unsigned int interval;
|
unsigned int interval;
|
||||||
unsigned int signal;
|
unsigned int signal;
|
||||||
} Block;
|
} Block;
|
||||||
char** last_updates;
|
|
||||||
void sighandler(int num);
|
void sighandler(int num);
|
||||||
void buttonhandler(int sig, siginfo_t *si, void *ucontext);
|
void buttonhandler(int sig, siginfo_t *si, void *ucontext);
|
||||||
void replace(char *str, char old, char new);
|
void replace(char *str, char old, char new);
|
||||||
|
@ -62,7 +61,7 @@ void remove_all(char *str, char to_remove) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//opens process *cmd and stores output in *output
|
//opens process *cmd and stores output in *output
|
||||||
void getcmd(const Block *block, char* last_update , char *output)
|
void getcmd(const Block *block, char *output)
|
||||||
{
|
{
|
||||||
if (block->signal)
|
if (block->signal)
|
||||||
{
|
{
|
||||||
|
@ -78,15 +77,10 @@ void getcmd(const Block *block, char* last_update , char *output)
|
||||||
int i = strlen(block->icon);
|
int i = strlen(block->icon);
|
||||||
fgets(output+i, CMDLENGTH-(strlen(delim)+1), cmdf);
|
fgets(output+i, CMDLENGTH-(strlen(delim)+1), cmdf);
|
||||||
remove_all(output, '\n');
|
remove_all(output, '\n');
|
||||||
if(i == strlen(output))
|
|
||||||
strcpy(output+i, last_update);
|
|
||||||
else
|
|
||||||
strcpy(last_update, output+i);
|
|
||||||
|
|
||||||
i = strlen(output);
|
i = strlen(output);
|
||||||
if ((i > 0 && block != &blocks[LENGTH(blocks) - 1]))
|
if ((i > 0 && block != &blocks[LENGTH(blocks) - 1]))
|
||||||
strcat(output, delim);
|
strcat(output, delim);
|
||||||
i+=strlen(delim);
|
i+=strlen(delim);
|
||||||
output[i++] = '\0';
|
output[i++] = '\0';
|
||||||
pclose(cmdf);
|
pclose(cmdf);
|
||||||
}
|
}
|
||||||
|
@ -98,7 +92,7 @@ void getcmds(int time)
|
||||||
{
|
{
|
||||||
current = blocks + i;
|
current = blocks + i;
|
||||||
if ((current->interval != 0 && time % current->interval == 0) || time == -1)
|
if ((current->interval != 0 && time % current->interval == 0) || time == -1)
|
||||||
getcmd(current,last_updates[i],statusbar[i]);
|
getcmd(current,statusbar[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +104,7 @@ void getsigcmds(int signal)
|
||||||
{
|
{
|
||||||
current = blocks + i;
|
current = blocks + i;
|
||||||
if (current->signal == signal)
|
if (current->signal == signal)
|
||||||
getcmd(current,last_updates[i],statusbar[i]);
|
getcmd(current,statusbar[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,11 +176,6 @@ void statusloop()
|
||||||
#ifndef __OpenBSD__
|
#ifndef __OpenBSD__
|
||||||
setupsignals();
|
setupsignals();
|
||||||
#endif
|
#endif
|
||||||
last_updates = malloc(sizeof(char*) * LENGTH(blocks));
|
|
||||||
for(int i = 0; i < LENGTH(blocks); i++) {
|
|
||||||
last_updates[i] = malloc(sizeof(char) * CMDLENGTH);
|
|
||||||
strcpy(last_updates[i],"");
|
|
||||||
}
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
getcmds(-1);
|
getcmds(-1);
|
||||||
while(statusContinue)
|
while(statusContinue)
|
||||||
|
@ -233,10 +222,6 @@ void buttonhandler(int sig, siginfo_t *si, void *ucontext)
|
||||||
|
|
||||||
void termhandler(int signum)
|
void termhandler(int signum)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < LENGTH(blocks); i++) {
|
|
||||||
free(last_updates[i]);
|
|
||||||
}
|
|
||||||
free(last_updates);
|
|
||||||
statusContinue = 0;
|
statusContinue = 0;
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue