Hello,
I would like to report a freezing issue I encountered in Glyphs 4 while working with Smart Components.
I have been developing a Python script that automatically adjusts the Height and Width values of Smart Components to match the bounding boxes of reference outlines.
The script works correctly in Glyphs 3. However, when running the same algorithm in Glyphs 4, the application would freeze and become unresponsive.
After extensive testing, I believe I have identified a specific condition that triggers the issue.
Steps to reproduce:
-
Create a glyph containing a stroke object in Glyphs 4.
-
Apply custom values using the local stroke adjustment controls, such as the controls for stroke thickness or angle at individual nodes or stroke ends.
-
Use this glyph as a Smart Component with Height and Width axes.
-
Insert the Smart Component into another glyph.
-
Attempt to change its Smart Component values programmatically using Python.
Observed behavior:
Glyphs 4 freezes and becomes unresponsive when the Smart Component values are modified.
In my case, the problem occurred with a component named _part.y401, which contained custom local stroke settings.
Workaround and test results:
After removing the custom local stroke settings from _part.y401 and reconstructing the component without those settings, I ran the same Python script again.
This time, the script completed successfully in Glyphs 4. All five Smart Components were adjusted to their target bounding boxes, with a maximum error of 1 unit.
No changes to the optimization algorithm were necessary.
This strongly suggests that the freezing issue is related to the interaction between the local stroke adjustment feature and Smart Component interpolation or extrapolation.
Additional information:
-
The script repeatedly modifies Smart Component Height and Width values and measures the resulting bounding boxes.
-
Some Smart Component values extend beyond their defined interpolation range.
-
The same overall workflow works correctly in Glyphs 3.
-
Removing the custom local stroke settings resolved the freezing issue in my test.
Could you please investigate whether the local stroke adjustment feature in Glyphs 4 may cause a conflict when Smart Component values are changed?
I can provide additional screenshots, logs, or a sample Glyphs file if needed.
Thank you!
