1
0

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:
NRK 2022-03-25 22:51:45 +01:00 committed by Hiltjo Posthuma
parent b43ec0577f
commit 6818e07291

View File

@ -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: