Differing component alignment in different Glyphs version

I open a file I received from a designer (I don’t get any warnings about updating misplaced component alignment), immediately save it, and look at the git diff:

 {
-.appVersion = "3223";
+.appVersion = "3221";
 .formatVersion = 3;
 axes = (
 {
@@ -154160,27 +154160,26 @@ pos = (1727,602);
 ref = "shaddaFatha-ar";
 },
 {
-pos = (50,-946);
+pos = (123,-843);
 ref = "kasra-ar";
 },
 {
-pos = (50,-1104);
+pos = (123,-1001);
 ref = "kasra-ar";
 },
...

(and so on). These aren’t even auto-aligned components. This is scary. It feels like my components are moving around a lot and I haven’t done anything, so I don’t know whether or not this is safe to commit. Should this be happening?

(Also: I check for updates, even with “show cutting edge versions”, and I’m told that I’m on the latest version, so who knows where 3223 came from?)

Can you send me the file from version 3223?

Thanks for the file. I fixed it.

While at it, I noticed a while ago that after a number of components (20?) automatic alignment gets disabled and can’t be enabled again unless I remove components.

That is on purpose. The only examples I had for glyphs with so many components where things like pixel font. And there it is not desired to have it. Because I that and performance considerations, I added the threshold.

Would it be possible to build it from sub-components?

I can add an option to remove (or at least increase) the limit.

The classic example would be ﷽

1 Like

This and the whole slew of honorific ligatures U+FD40–FD4F

Now I’m in a pinch. If I “fix” this and remove that limit, it will start to align those glyphs that where not aligned until now. That will hopefully trigger the dreaded alignment dialog to prevent unintentional movement of manually placed components.

I may have a solution. I keep the limit but offer a way to manually disable it. By setting the alignment of the first component to “force” (in the context menu with pressed Option key).