Is it only me, or have more users noticed the many changes, required to make existing code work without -dOldAutoSize?

I understand that it may take some more time to finish the autosize redesign, so let me report some observations:

Resize requests occur much too often, eventually causing excessive flicker. It's not a good idea to fix this in application code, since this will result in flames like:

  Delphi applications have a GUI, Lazarus applications a light show.

It would help to trigger any layout actions only on changes of the Width or Height of a control, and not when e.g. a form only is moved. It's simpler to add an Invalidate or other update statement to existing code, when the GUI or a widgetset fails to reflect changes automatically, than preventing not required changes by fragile pairs of Disable/Enable calls, all over in LCL and application code.


Thanks to Mattias for his attempts to reduce the flicker in the docking examples, but I had to drop all modifications to the dockmanager code, in order to make it *work* as before. Flicker and other inconveniences have to be fixed in the LCL, not in user code.

Since the new autosize changes broke the dockmanager examples in many ways, I suggest to use them with -dOldAutoSize. Once the general autosize problems have been solved, we can look again at eventual remaining docking-related problems.


Last not least let me refrain my opinion about layout managers, that becomes stronger with every new-autosize problem:

Separate layout management from general LCL code, so that different layout managers (e.g. anchored layouts, docksite layout) can be used *when needed*. This would simplify the development of e.g. new autosize a lot, when only the (default) layout manager must be changed in a project, instead of the currently required rebuild of the entire LCL. This redesign also could reveal many layout (manager) specific hacks, crowding the current Controls unit, that should be removed for two reasons:
1) increase the LCL maintainability
2) reduce consequently required workarounds in user code

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to