IAP Desktop uses a UI that’s similar to Visual Studio: We can dock tool windows, let them auto-hide when we don’t need them, or let them float as separate windows. But that flexibility didn’t apply to RDP windows – they always stayed at the center, and IAP Desktop wouldn’t let us rearrange them.
This limitation wasn’t accidental: Floating and docking aren’t standard MDI features. Instead, it’s a concept implemented by Visual Studio and DockPanelSuite (the library used by IAP Desktop). The way DockPanelSuite implements docking works fine with most controls, but happens to be incompatible with the RDP ActiveX control. The RDP ActiveX control makes some assumptions about the parent/child relationships of windows, and during a docking operation these don’t hold anymore… causing the control to crash.
With IAP Desktop 2.25, the limitation is now gone. The app now implements some extra logic to keep the ActiveX control alive and happy during docking operations so that we can now float and dock RDP windows (and SSH windows) as we please:
You can find the source code and all releases of IAP Desktop on the project’s GitHub page.