mirror of git://git.suckless.org/dmenu
avoid redraw when there's no change
while i was timing the performance issue, i noticed that there was lots of random redrawing going on. turns out there were coming from here; if someone presses CTRL/ALT etc without pressing anything else, nothing will be inserted, so nothing will change. but the code will `break`, go down and do a needless redraw. this patch changes it to simply return if the keypress iscntrl() also avoid potential UB by casting *buf into an unsigned char.
This commit is contained in:
parent
b43ec0577f
commit
6818e07291
5
dmenu.c
5
dmenu.c
|
@ -415,8 +415,9 @@ keypress(XKeyEvent *ev)
|
||||||
switch(ksym) {
|
switch(ksym) {
|
||||||
default:
|
default:
|
||||||
insert:
|
insert:
|
||||||
if (!iscntrl(*buf))
|
if (iscntrl((unsigned char)*buf))
|
||||||
insert(buf, len);
|
return;
|
||||||
|
insert(buf, len);
|
||||||
break;
|
break;
|
||||||
case XK_Delete:
|
case XK_Delete:
|
||||||
case XK_KP_Delete:
|
case XK_KP_Delete:
|
||||||
|
|
Loading…
Reference in New Issue