I'm researching how we might do this. Please tell me if it would help for me to go into more detail here, I'm trying to keep this somewhat high level.
In our application, it seems we need to have our ToolWindows sort, where some ToolWindows are obscured by the application window, and other ToolWindows appear on top of the application window. The sorting would be based on which dock site is "focused": ToolWindows associated with dock sites that are not "focused" would be obscured, and ToolWindows associated with the "focused" dock site would appear on top. Luckily, dock sites can tell whether they're "focused" or not because each is contained within a tabbed MDI DocumentWindow, and we can listen to the "PrimaryWindowChanged" event on the Tabbed MDI host.
First, the simpler question: do ToolWindows support sorting? It seems their behavior is to always sort on top of the application window.
Second, the deeper issue: is there anything like this in Docking/MDI? We're not against modifying source, but it's worth checking before diving into this. If this requires source modding, can anyone supply a rough estimate of the extent of changes involved?