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