This only happens when pressing C-n inside a drawing in normal (not maximized) mode.
The reason is complicated. First, the baseline:
When pressing C-o: run.keychord: starty is not nil run.keychord: current drawing is nil Drawing.keychord C-o: doesn't set current drawing plan_draw (only happens in normal mode): clears starty in all lines Drawing.update: all good ✓
When pressing C-n: run.keychord: starty is not nil run.keychord: current drawing is nil Drawing.keychord C-n: sets current drawing <=== plan_draw: clears starty in all lines Drawing.update: BOOM
Ugh.
When is starty set? Drawing.draw. This is why I can clean it up with abandon. But: frame = events -> update -> draw
So one possible interpretation here is that this is an unfortunate interaction of two special-cases:
So the current prescription: any code called from within update needs to protect against starty being nil.
Ugh X-(
SEBFLWZVK6Y7GX62DXQFWJG4IFV2VTXHGEWS25ZIQYKC3AQW5TFQC
AHOO2ILEJWTPCYHJH26WAF7A4YYVMHFX4UWHSAAAMHI73TSQZ6CAC
RW2A3HUEV75FAGGBJZ5PHY3IJ4IABG7ADK3ZA6Z56XIXJEHWR7UAC
KKMFQDR43ZWVCDRHQLWWX3FCWCFA3ZSXYOBRJNPHUQZR2XPKWULAC
VPCPK52KMU4MZUXP4SUSJJDEHDR4C3KJ45HLMUQUK32FMY6OCQ4QC
3OTESDW65UJ2W5RIXA6FNKRSD7TBCZTCCCEAYOQMEVGYZ6RCU34QC
RT6EV6OPUYCXYZOX2PHFXJ7KT77KHNEVINEGQXIQLHQVKPGTN6VQC
BLWAYPKV3MLDZ4ALXLUJ25AIR6PCIL4RFYNRYLB26GFVC2KQBYBAC
23MA4T3GWPOLM5S6JCNQJU2SRT7VQGYZ2JZJN26KA5MKI4LOCC4QC