Glyph window and zoom levels



  • When opening a glyph window, the zoom level always is set to "fit". Which I find very confusing because it’s hard to have a sense of scale if all outlines are basically show at full window size.

    It would be very good if it was possible to set a fixed zoom factor for newly opened glyph windows and/or a shortcut for 100% zoom instead of "fit".

    In addition, the zoom factors don't seem to respect the UPM setting of the UFO. If I have an UFO at 2000 units per em and zoom to 100%, the glyphs are often cut off because they are shown too big. It would be better to make the zoom factors relative to UPM size.



  • Thanks Frederik, the script solution sounds fine. Just one problem, the glyph windows has no method setGlyphViewScale ;) Maybe I'll have to wait for the next Robofont release?

    Your arguments sound sensible. Maybe I just should just try to keep a glyph window open constantly. That will preserve the zoom level when double-clicking on a different glyph. I have the habit to close and re-open glyph windows all the time, this led to the confusion.


  • admin

    The zoom level for newly opened glyph windows is indeed always "fit". This is fitting the glyph bounding box into the size of the window. When switching to an other glyph in the same glyph window the zoom level will remain the same (by either double clicking a glyph in the font overview or by the switch to the next or previous glyph or jumping to an other glyph).

    The issue why not remembering the zoom level for newly opened glyph windows is that your drawing will get "lost" in space if the zoom level is big. This has been tested in a beta version but removed cause it's really confusing. It just makes you pan much more.

    Will think about a menu short cut to a 100% zoom level. The 100% doesn't make really sense cause type is set in point sizes related to the upm and other font metrics settings. However you can set a short cut to a specific zoom with a script:

    from mojo.UI import CurrentGlyphWindow
    
    gw = CurrentGlyphWindow()
    
    # the scale value 1 is 100%, 2 is 200%, 0.5 is 50%
    gw.setGlyphViewScale(1)
    

    Add an observer on a key down and set a zoom level when a specific key is pressed :)

    good luck