Description:
Each filter list in the Select Objects step of the Reverse Engineer Database dialog resets in both its scroll position and current selection whenever its contents change (as a result of moving items between the two--inclusion and exclusion--sides).
How to repeat:
Find or make a schema containing at least 15 tables, 15 views, and/or 15 routines.
Proceed to the "Select Objects" step of reverse engineering that schema.
Click the "Show Filter" button for the object type of which you have 15+ instances.
Scroll to the bottom of the list on the left.
Select the second-to-last item and send it to the right.
Note that your scroll position and selection in the left-hand list are lost.
If you play around with it, you'll note this occurs to any list whenever its contents change.
Suggested fix:
When a list updates, preserve scroll position and selection within that list. If the previously selected item has just been removed, pass the selection to the next remaining item in the list, unless there isn't one, in which case pass it to the previous remaining item, if there is one. Manipulate the scroll position so that whether the list grows or shrinks, the selection highlight stays in the same spot within the window as long as the bounds allow.
This makes for the most efficient and natural linear browsing, in my opinion. (What can I say? It's the little things. :D )