22511c41d5
this was the last piece of the puzzle, the case where we can't find any font to draw the codepoint. in such cases, we use XftFontMatch() which is INSANELY slow. but that's not the real problem. the real problem was we were continuously trying to match the same thing over and over again. this patch introduces a small cache, which keeps track a couple codepoints for which we know we won't find any matches. with this, i can dump lots of emojies into dmenu where some of them don't have any matching font, and still not have dmenu lag insanely or FREEZE completely when scrolling up and down. this also improves startup time, which will of course depend on the system and all installed fonts; but on my system and test case i see the following startup time drop: before -> after 60ms -> 34ms |
||
---|---|---|
LICENSE | ||
Makefile | ||
README | ||
arg.h | ||
config.def.h | ||
config.mk | ||
dmenu.1 | ||
dmenu.c | ||
dmenu_path | ||
dmenu_run | ||
drw.c | ||
drw.h | ||
stest.1 | ||
stest.c | ||
util.c | ||
util.h |
README
dmenu - dynamic menu ==================== dmenu is an efficient dynamic menu for X. Requirements ------------ In order to build dmenu you need the Xlib header files. Installation ------------ Edit config.mk to match your local setup (dmenu is installed into the /usr/local namespace by default). Afterwards enter the following command to build and install dmenu (if necessary as root): make clean install Running dmenu ------------- See the man page for details.