For a moment I thought that kzDesktop will be my final docking solution, but I gave up after it made my whole development environment too much unstable and below any tolerance point. I think I have tested every docking solution available so far, but recently I have decided to give all of them a second chance. One of them was GlassDocking package from CodeTyphon which can also be installed in regular Lazarus. Although it still has problems, I have learned how to overcome it's bugs and limitations, and the result is finally satisfying and good enough for my every day use so I would like to share my experience:
- Most frustrating bug is that glass docking works well only if I avoid tabbed panels. If I put any window tabbed into another one it works until exit, but on IDE restart docking breaks apart completely and I have to restore docking config files from backup. This really limits layout options and the number of windows even with big 1920x1080 screen resolution, since all windows must always be visible even if I don't need them all the time. Fixing tabbed layout would really improve glass docking experience.
- Saved layout is not exactly restored on IDE restart (few pixels here and there are missed). In shown layout for example, if I try to expand Jump History window a little, or shrink FPCDoc Editor window a little, these changes will not be exactly restored after IDE restart.
- I miss auto hide feature, since it would be a significant improvement in space savings.
- Hitting F12 to bring form in front is acceptable, but it is annoying to see that forms are hidden the moment I click on object inspector or anything else. Something like kzDesktop embedded form designer does not yet exist (but is planned according to CT team). Also having optional component bar on top of form designer window as in kzDesktop would be very nice and space saving, since components would be shown only when really needed - and that is when forms are edited.
- Default yellow color chosen as Header Color is irritating and too much distracting. I had to change it to Active Border (as shown in screenshot).