-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Range selectors for ligatures does not work properly with aat fonts applying ligatures via morx table #4020
Comments
To implement this properly we need to treat runs with different features as independent runs for running the state machine, as the subtable flags might be different. That would be a significant change to our internal implementation. I have a hacky implementation instead, which seems to work for simple cases. I'm going to push that instead. |
That broke tests. Reverting while I investigate whether it can be fixed. |
Okay. "Fixed" it. I really don't like this hack, but I think it will do the job for now. It doesn't have any adverse effect if user doesn't specify any features. For fully specified features I might have broken things. To be determined. |
Humm, actually my change probably breaks some fonts. I'm uncomfortable with it. Let me think more. Might revert it. |
The hard way... A bit uglier than I liked it to be, but is proper at least. Fixes #4020
Okay. I fixed it properly. Please test @DeependraKhetwal. |
Humm. It broke more things. Debugging still :( |
Discussed in #4019
Originally posted by DeependraKhetwal January 9, 2023
Hi , I am facing an issue with aat fonts where on disabling ligatures for a particular range the ligatures gets disabled for the whole line. The issue does not happen with fonts that apply ligature substitutions via opentype 'liga' feature but which apply ligature substitutions via 'morx' table. In the attached example I am disabling ligatures for 'ffi' (using -liga[3:]) but ligature is getting turned off for 'ff' also.
The text was updated successfully, but these errors were encountered: