Trying to use AnchorDocking in my project I've run into a weird usability issue.
I have a main form with some "central" control and want the user to be able to dock windows to the surrounding borders. I do this by calling MakeDockSite like so:
DockMaster.MakeDockSite(Self, [akLeft, akRight], admrpChild);
When I want to dock a window to that, the main window size gets expanded, i.e. the child window is docked "outside". This breaks the UI in funny ways if the main window is already maximized.
Setting
AllowInside = false allows docking the child windows on the inside according to documentation and the dock preview rectangles, but doesn't work in practice: child windows still get docked outside.
From how I understand the dock manager,
TAnchorDockManager.InsertControl simply doesn't implement Inside docking at all? Same for restoring the previous size in
TAnchorDockManager.RemoveControl which wouldn't have to do anything in this case, but always does.
Am I missing something or is this correct?
Edit: resizing seems also unintuitive, see attached sketch. Blue is the window border, black lines are TWinControls. From top to bottom: (1) main window starting state with its own content, (2) docked form attaches itself outside to the left, (3) resizing the main window resizes the docksite, not the main content. Content=alClient and Docksite=alLeft should resize the client and keep "sidebar" width constant. Instead it behaves as if the DockSite had alClient and the main content had alRight or as if there was a akRight anchor on the splitter, but there isn't. Where does the resize behavior come from?