Last week we released 1.11.1 and I was working on client UI improvements.
There are more details about the 1.11.1 patch in the news post
During the week I made several improvements to the behavior of the console command line autocompletion. Now when you press Tab and there are multiple alternative completions, you will get a popup listing all the possible ones:
While implementing this it became apparent that there were a number of performance issues in getting a longer piece of text prepared for drawing. As a first step, I used a background thread for preprocessing text so that the UI is not blocked. (I must say that thanks to the Task/TaskPool classes in libdeng2, it is now quite easy indeed to run operations in background threads.) I also did some profiling to see what was really going on, and found that the text wrapper was spending most of its time on completely unnecessary memory copying. Some refactoring yielded an order of magnitude improvement in its performance.
So in other words, text-related UI performance is now improved.
While working on the popup, I also got stumped by a weird layout bug. Eventually I found the source of the problem.
The Rule system I developed for UI layout has proven its worth, but debugging it is somewhat tricky. Fortunately, it's starting to look quite bug-free now (knocks on wood)
Another UI related step forward was to get rid of the old code for drawing the busy mode progress indicator. This is the rotating gear that is displayed when starting Doomsday or loading a game/map. Now the new UI framework is responsible for this UI element. This has made it possible to use the same indicator elsewhere in the UI, for instance in the autocompletion popup when preparing a long list of completions.
My plan is to continue revamping old UI elements so that the Control Panel, autoupdater, and multiplayer setup can be handled by new widgets.