Some difficulties/glitches with drawing in RF4 (which might partly be due to extensions)



  • First of all, awesome work in releasing RF4! I know this has been a massive effort, and I’m excited to finally be working in the upgraded tool. I’m also pretty excited that you released it now, rather than waiting for a long time to try to get everything 1000% perfect. That said, there are a few glitches I have come across while drawing in RF4 today. Rather than bury my feelings and hope these get fixed eventually, I figured I should list them out, to at least maybe get the process started.

    I’m slightly uncertain about posting this because I’m not entirely sure what might be caused by updates to RF4, and what might be caused by extensions lagging behind a bit.

    I realize that I should probably deactivate some extensions to properly test this out ... but some extensions are very hard to draw without (they’re in my muscle memory at this point), so I don’t know how far I’d get. But, I’ll try to mention which things I suspect are caused by what, and I am happy to follow debugging suggestions or email in the font I’ve experience these issue with. I am on the latest version of all extensions, according to Mechanic 2.

    These are all things that happen semi-infrequently, but enough to be fairly disruptive.

    • Sometimes, points shoot way beyond where I am dragging them, as though the movement is passing through a multiplier. (I bet this is caused by scalingEdit Tool).
      • When this happens, I can’t “Undo” with command-Z. I think I have to restart RoboFont to get out of this. It happens relatively often, and is very disruptive.
      • If I had to assign a priority to the issues listed here, I think this would be the highest priority.
    • Sometimes, I try to click and drag a selection marquee, and I just can’t.
      • Command-Click to select a contour is also giving me trouble, when this happens.
      • I can, however, select individual nodes or segments, and hold shift to add to my selection. This works, but is obviously a tedious workaround.
      • Weirdly, this problem seems to be happening more in some glyphs than in others… for example, I can’t marquee select in the T or L, but I can in the W
    • Sometimes, when I have selected a node, the node doesn’t get highlighted in blue, to show that selection – but it will move if I drag or nudge it.
    • Sometimes, if I select nodes, then drag them or nudge them arrow keys, the blue highlight/selection stays fixed in the same location, even while the nodes & outlines themselves move. This isn’t a blocker, but it is just a little confusing.
    • Sometimes, when I have a set of nodes selected and I try to hold Shift+Command to nudge it by large units, it only nudges the oncurve nodes, messing up the shape.
    • Sometimes, canvas zooms in and out with me trying. This is something that also happened in RF3, I think. It’s not that bad, and it’s infrequent, but it’s also just pretty distracting when it does happen.
    • Not sure if this deserves a separate post entirely, but I tried to select multiple glyphs and use the Inspector’s “Transform Selected Glyphs” function, and this froze the application. This happened twice. It maybe be partly due to images that were in several of the glyphs.

  • admin

    The guideline.identifier issue on undo/cut/paste is a different problem :(.

    Something that is using subscriber is doing something wrong. Im looking at your Eyeliner extension and aside from the scale vs merz symbols, I would not change that much.

    My biggest guess is that you have multiple versions of your subscriber instances open, those are receiving a callback on Glyph.Changed but the internal dict has already changed or cleaned up. While developing its recommended to set the debug flag to True in your class.



  • Thanks! I’ve managed to reproduce it again... here’s a video of the transform issue:

    https://www.dropbox.com/s/hwwi8xs71vhc5yx/robofont-4-transform-glitch.mp4?dl=0

    I’m happy to email the UFO to you directly, if that would be any help.

    Also, I’m not sure this is relevant, but I am on macOS Catalina 10.15.5.

    Here’s the console output from the video:

    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1101, in _mouseUp
      File "lib/fontObjects/doodleSelection.pyc", line 895, in selectionEditEnded
      File "lib/fontObjects/doodleSelection.pyc", line 1150, in _snapToRoundValue
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1313, in _contourChanged
      File "lib/fontObjects/doodleGlyph.pyc", line 63, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1215, in _keyDown
      File "lib/fontObjects/doodleSelection.pyc", line 1708, in deleteSelectionFromGlyph
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1421, in paste
      File "lib/fontObjects/doodleSelection.pyc", line 2234, in paste
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1101, in _mouseUp
      File "lib/fontObjects/doodleSelection.pyc", line 895, in selectionEditEnded
      File "lib/fontObjects/doodleSelection.pyc", line 1150, in _snapToRoundValue
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1313, in _contourChanged
      File "lib/fontObjects/doodleGlyph.pyc", line 63, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 599, in _mouseDragged
      File "lib/eventTools/editingTool.pyc", line 856, in dragTransform
      File "lib/fontObjects/doodleSelection.pyc", line 1641, in transform
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 173, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 303, in releaseHeldNotifications
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1101, in _mouseUp
      File "lib/fontObjects/doodleSelection.pyc", line 895, in selectionEditEnded
      File "lib/fontObjects/doodleSelection.pyc", line 1150, in _snapToRoundValue
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1313, in _contourChanged
      File "lib/fontObjects/doodleGlyph.pyc", line 63, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    
    

  • admin

    looking into it..



  • Thanks @frederik, that makes sense! Luckily, with Eyeliner v2.0.2, those tracebacks seem to be resolved!

    I want to help find and squash bugs to help make RF even better, but I don’t draw every day, so it is intermittent. And, I should say that as I’m getting into drawing more open UFOs at once, performance does seem to be significantly improved here, and these bugs only seem to come up if I’m drawing for a few hours at a time.

    So, another glitch, and an output copy/paste...

    Just now, while trying to use Transform to adjust the counter of a zero.dnom glyph (scaling it up a little bit from the center point, something I do relatively often), I found that the contour shot off in both directions, echoing some of the earlier glitches. And, I can’t command-Z to undo the change and try again, or select anything in the glyph ... I think maybe I instinctively deleted the shapes after the glitch, and can’t undo that? (This isn’t a huge issue, however, because that was just an interpolated glyph, anyway.)

    I’m not sure if these traceback messages are specifically related to that glitch, but here is some of the recent traceback from when this happened:

    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1101, in _mouseUp
      File "lib/fontObjects/doodleSelection.pyc", line 895, in selectionEditEnded
      File "lib/fontObjects/doodleSelection.pyc", line 1150, in _snapToRoundValue
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1313, in _contourChanged
      File "lib/fontObjects/doodleGlyph.pyc", line 63, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 425, in _set_dirty
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 223, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/tools/notifications.py", line 244, in postNotification
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1840, in _defconCallback
    KeyError: 'Glyph.Changed'
    Traceback (most recent call last):
      File "lib/doodleUndo.pyc", line 75, in undo_
      File "lib/fontObjects/doodleGlyph.pyc", line 301, in setDataFromSerialization
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1394, in setDataFromSerialization
        self.clear()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1242, in clear
        self.clearGuidelines()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1038, in clearGuidelines
        self.removeGuideline(guideline)
      File "lib/fontObjects/doodleGlyph.pyc", line 708, in removeGuideline
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1018, in removeGuideline
        self._identifiers.remove(guideline.identifier)
    KeyError: 'MJrlm4vmb2'
    Traceback (most recent call last):
      File "lib/views/doodleLayerGlyphView.pyc", line 2009, in undo_
      File "lib/doodleUndo.pyc", line 75, in undo_
      File "lib/fontObjects/doodleGlyph.pyc", line 301, in setDataFromSerialization
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1394, in setDataFromSerialization
        self.clear()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1242, in clear
        self.clearGuidelines()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1038, in clearGuidelines
        self.removeGuideline(guideline)
      File "lib/fontObjects/doodleGlyph.pyc", line 708, in removeGuideline
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1018, in removeGuideline
        self._identifiers.remove(guideline.identifier)
    KeyError: 'MJrlm4vmb2'
    Traceback (most recent call last):
      File "lib/doodleDelegate.pyc", line 95, in sendEvent_
      File "lib/views/doodleLayerGlyphView.pyc", line 2009, in undo_
      File "lib/doodleUndo.pyc", line 75, in undo_
      File "lib/fontObjects/doodleGlyph.pyc", line 301, in setDataFromSerialization
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1394, in setDataFromSerialization
        self.clear()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1242, in clear
        self.clearGuidelines()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1038, in clearGuidelines
        self.removeGuideline(guideline)
      File "lib/fontObjects/doodleGlyph.pyc", line 708, in removeGuideline
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/glyph.py", line 1018, in removeGuideline
        self._identifiers.remove(guideline.identifier)
    KeyError: 'MJrlm4vmb2'
    

    Here’s a visual of the result:

    ea053278-98b7-4417-86b3-3f2de8c8f3e3-image.png


  • admin

    FYI: support is given to Ryan related to Eyeliner off-forum



  • I don’t think this is very related to my UX issues, but Eyeliner is outputting a few tracebacks:

    Observer '<eyelinerRF4.Eyeliner object at 0x1586f5750>' with '_glyphEditorDidSetGlyphInternalCallback' failed: 'Eyeliner' object has no attribute 'bgContainer'
    Traceback (most recent call last):
      File "lib/eventTools/eventManager.pyc", line 165, in callObserver_withMethod_forEvent_withInfo_
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1709, in _glyphEditorDidSetGlyphInternalCallback
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1622, in _roboFontCallback
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 3193, in start
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 3209, in fire
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1637, in _roboFontCoalescerCallback
      File "/Users/stephennixon/Library/Application Support/RoboFont/plugins/Eyeliner.roboFontExt/lib/eyelinerRF4.py", line 70, in glyphEditorDidSetGlyph
      File "/Users/stephennixon/Library/Application Support/RoboFont/plugins/Eyeliner.roboFontExt/lib/eyelinerRF4.py", line 81, in beginDrawing
    AttributeError: 'Eyeliner' object has no attribute 'bgContainer'
    Observer '<eyelinerRF4.Eyeliner object at 0x1586f5750>' with '_roboFontCallback' failed: 'Eyeliner' object has no attribute 'bgContainer'
    Traceback (most recent call last):
      File "lib/eventTools/eventManager.pyc", line 165, in callObserver_withMethod_forEvent_withInfo_
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1622, in _roboFontCallback
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 3193, in start
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 3209, in fire
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/mojo/subscriber.py", line 1637, in _roboFontCoalescerCallback
      File "/Users/stephennixon/Library/Application Support/RoboFont/plugins/Eyeliner.roboFontExt/lib/eyelinerRF4.py", line 74, in glyphEditorWillScale
    


  • Thanks, @roberto-arista and @timotimo! Sorry for my delay in response – I’ve been involved in other tasks than drawing for a few days, but I will try to get in some drawing over the next few days, and report with tracebacks here.

    For what it’s worth, I’m not drawing with quadratics, I almost always do have extrema points set, and I run into glitches with both the normal edit and scaling edit tools.

    I’ll report back as I am able to!



  • I haven't run into bugs with my scalingEditTool in RF4, for a while, yet... I'm still on Catalina and can't test on Big Sur. I'll be glad to investigate if you can recreate the bugs and make sure no other extensions are involved.
    The scaling has always been unpredictable if there are no extrema points on the curves. It can crash RF in extreme cases. This is not new to RF4 though, and not a common use scenario.
    The multiple quadratic offcurve points features in RF4 are still experimental, but that shouldn't cause problems for scalingEditTool, as the extra offcurves are simply skipped. Single offcurve segments are still a bit tricky for the angle keeping behavior.
    ScalingEditTool doesn't do any extra drawing and everything except the calculations and scaling the offcurve points is inherited from the regular editTool, so very few changes were needed for it to work in RF4. But there may still be some glitches, of course.



  • 👋

    I am pretty sure that all these issues are linked to extensions, most of them still use the old drawing engine

    I think we need to narrow down every single issue.
    Can you post some tracebacks from the output window?


Log in to reply