Issues with the Touche Tool Plugin in Glyphs 2

Overview

We’re regular users of Nina Stössinger’s Touche Tool. We’ve been using a version of this tool from 2018. We pulled the latest version recently from the Plugin Manager, and we’ve encountered several issues, which we wanted to report.

One issue seems to be that the tool crashes Glyphs.app to the Desktop when trying to check curve-to-curve clashes. Please see Issue 1 in the steps to reproduce below.

After adding a very minimal patch to the Plugin Source to get around the first issue, the Plugin seems to return incorrect results on certain forms. Please see Issue 2 in the steps to reproduce below.

We’re happy to provide files for debugging purposes, if that’s useful. We’ve rolled our plugin back to the 2018 code (which works perfectly for us), so this isn’t an urgent matter. However, we did want to bring it to your attention.

Steps-to-Reproduce Issues

Error 1: Plugin Crash

  • From a fresh glyphs file,
  • Download Touche Plugin from the plugin manager and restart Glyphs app.
  • Create a “circle” glyph with negative sidebearings so it clashes with itself
  • Create a “square” glyph with negative sidebearings so it clashes with itself.

  • Use Touche to test a square to square intersection, observe that the plugin functions properly.
  • Use Touche to test a Circle to Circle, intersection, observe that Glyphs.app crashes to the desktop with a system crash report. (We’ve also experienced the plugin crash with a plugin crash report, instead)
  • You can also see that this crash occurs when the Circle clashes with the Square, but not with itself, by adjusting the sidebearings of the Circle to 1, 1, and then running the tool on the Circle and Square.

Error 2: Clash Checking returns incorrect results on certain forms

  • To continue using the tool, we introduced a small change to the Touche.py file to circumvent the issue described above.


Change NSIntersectsRect


to segmentInBound

  • After introducing this change, another issue is encountered: On a complex serif project we’re working on, pairs with known clashes are not returned by Touche.
  • The gf pair in the italic typeface we’re working on has a known clash.
  • Running Touche with f and g selected fails to return gf as a clash, and returns fg as a clash, even though this pair is not clashing.


A clash between f and g is reported, even though there’s no clash.


Meanwhile, there’s a clash between g and f which goes unreported.

  • Note that fg has a kerning of -25. When we remove kerning from this pair, we no longer get fg clash, and no clashes are reported at all (even though there is still a clash in the gf pair.)
  • We’re happy to provide this glyphs file for debugging purposes.

How to get Demo Files for Testing

Please email nic at occupantfonts dot com for a copy of the testing file related to Issue 2. We can
also provide the crash report we received for Issue 1 above, if that’s of interest.

Glyphs and Plugin Versions