the code used to keep components in place after changes to the left margin of base glyphs has been rewritten using the algorithm described by @dberlow (thanks!).
the new version produces 100% correct results in all tests made so far, while the previous version had a bug which affected glyphs with multiple versions of the same component.
however, the new version is a lot slower.
TO DO:
look into ways to optimize the component alignment code in functions loadSpacingFromLib and smartSetMargins
the code used to keep components in place after changes to the left margin of base glyphs has been rewritten using the algorithm described by @dberlow (thanks!).
the new version produces 100% correct results in all tests made so far, while the previous version had a bug which affected glyphs with multiple versions of the same component.
however, the new version is a lot slower.
TO DO:
loadSpacingFromLib
andsmartSetMargins