Today was a good day for fixing bugs. Also it was a cake day for reasons that people who know me well will understand.
Trivial bug, E17’s list of external settings applications weren’t alphabetically sorted. Boo hoo.
This was a confusing bug: the keyboard search buffer wasn’t showing up for ilist widgets. We have a search buffer for ilist widgets??? Apparently someone added it a few years back and nobody ever noticed. Probably because it was INVISIBLE. Yeah, an invisible search widget: that’s super useful. After creating the visual for it, I ran into some resize issues that were mostly impossible to deal with in the “proper” way using current E17 widgets, so I hacked up a fix for it that caused the following reaction:
<raster> (o) (o)
<me> so it’s fine
<raster> that was meant to be a frown
<adrien_o1w> looks like a harley davidson
<adrien_o1w> with big headlights
Another weird one: opening an EFM window while a non-default border style was set would cause the border style for all of E17 to reset. With some debugging, this led me to find a bigger bug: E17 would always fall back to default border style any time an invalid border style was passed, ignoring the currently set style. Now we more gracefully check the currently set style before resetting the config.
This turned into a bug hunting safari where, with the assistance of senior huntsman and tracker Chidambar Zinnoury, I was able to capture and defeat the most dangerous game of all: desklock screen bugs. I’ll start at the beginning, however, so as not to terrify my readers so much that they do not return.
According to the bug report, desklock would be applied multiple times on startup under certain conditions. Several grueling minutes passed, while sitting in my jeep-like hunting console tracing E17 startup functions. I discovered that desklock would be applied at startup as expected, but there were footprints from a larger beast: the re-lock job. Someone had decided that, instead of properly tracking screen add/delete/resize and managing the desklock screens appropriately, we could just unlock and then re-lock the screen. To this, I can only say: are you fucking serious?
So, onwards I went, hacking and slashing away at this giant beast of a bug. This titanic struggle would not be swiftly resolved, nor was it to end without some collateral damage. Fortunately, this was where my bug hunting compatriot, Chidambar, stepped in. Within seconds of my commit which slew the re-locking beast, he had sighted related bugs which were hidden by the unnecessary complexity of the lock screen creation code. With his expert nagging^Wassistance, all of these bugs were fixed, and tranquility at last returned to the endless savannas of desklock. A happy ending indeed for the hero and his sidekick, and improved desklocks for everyone.