The following changes various visual coloring and effects that are based on widget state.
Default Dialog Buttons
Buttons can have a flag set with UI_BUT_ACTIVE_DEFAULT to indicate they are the default button among a group. The button executed if just pressing "Enter". For example the "Save" button on the "Do want to save?" dialog.
Unfortunately the way that indication is currently drawn has a few problems. The color is based on the "Inner Selected" of "Menu Item", which is not intuitive to find. The color will usually look muddy since it is 50% mix of that color and the regular color. And the bend radius of the corners is hard-coded. So if you change the roundness of the buttons the corner will not match. For example you can see this if you make the buttons more or less rounded:
This patch fixes those problems and also makes the button the full color of that widget's "Inner Selected" to better indicate its state. Top showing current color when using default theme, the bottom after this patch is applied:
Disabled Pulldown Menu Items
Some menus items are disabled when not applicable. In the following example, "Revert" is disabled because there is nothing to revert at the moment. You will notice that it properly looks enabled when you are not hovering over it (leftmost image). But when hovering the text becomes bright and the background takes some of the "selected" color. It isn't becoming even part-way selected so should not use that color nor become brighter. This patch makes it look like the right-most image:
Although we use pulldown menu code for enum lists, it is best if we deviate from that behavior for popup enum lists. The current-selection option should look as enabled as any other of our widgets when on, enabled, or selected. This patch makes it change from the behavior shown the left to that shown on the right. It more clearly shows the current value and feels intuitive while selecting. Active state (pressed down) takes on the brighter selected color (not shown):
This patch also makes subtle changes to how widgets look when you hover your mouse over them. Currently it is a bit arbitrary what is highlighted and what is not. And the effect varies a lot with widget color. This patch makes more things show a hover highlight and that highlight changes the inner color, outline color, and the text color. All in a more pleasing, but still subtle way, that is a bit more uniform and predictable.