The issue occurs with the default fonts too ("emacs -Q"). On Windows that means `Courier New' for `default' and `Monospace' for `fixed-pitch', `Monospace Serif` for `fixed-pitch-serif' and `Arial` for `variable-pitch'.
With these default settings, the `package-list-packages' buffer works mostly fine, but the info page `(cl) Structures' for instace does not. Using different fonts, e.g. `Linux Libertine Mono' or `Noto Mono', the issue becomes only more widespread.
I detail, I noticed that the issue indeed does occur specifically when font substitution kicks in. In the info-page for `(cl) Structure' this occurs, because the "=>" is replaced by the unicode symbol "⇒", which is displayed in a different font; Sadly I can't figure out a way to identify the substituted font; It is definitely a variable-pitch font (the symbol is wider than the default font, such that characters are no longer vertically aligned with other lines).
For such font-substituted characters, there are multiple cases where I observed delays.
- When the character becomes visible in the current window (small delay if caused by a single input event, but can crash Emacs when scrolling-events, and thus delays, queue up).
- When `point' is moved to the line containing the character, either with mouse or keyboard (somewhat bigger delay).
- When `point' is moved to the character itself, either with mouse or keyboard (extensive delay).
- Whenever there is any change to the Window-layout (e.g. splitting the window, or resizing the frame).
My guess would be that custom fonts only make the issue more apparent, because font-substitution may become more widespread.
If there is any possibility to identify the font used in font substitution (it doesn't affect the text-attributes apparently, so C-u C-x = doesn't help), I could check if the issue is related to one of the fonts I have installed on my system.
- Klaus