<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Undo manager]]></title><description><![CDATA[<p dir="auto">Is there a recommended way to build undo/redo functionality into my own tool, using RoboFont's undo manager? I'd like to be able to undo changes within the Vanilla interface, but also changes to some of my own objects. Is there an extension somewhere that already does this that I can have a look at?</p>
<p dir="auto">Thanks!<br />
Andy</p>
]]></description><link>https://forum.robofont.com/topic/527/undo-manager</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 12:25:38 GMT</lastBuildDate><atom:link href="https://forum.robofont.com/topic/527.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Oct 2018 21:31:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Undo manager on Sat, 27 Oct 2018 10:54:51 GMT]]></title><description><![CDATA[<p dir="auto">Is there a recommended way to build undo/redo functionality into my own tool, using RoboFont's undo manager? I'd like to be able to undo changes within the Vanilla interface, but also changes to some of my own objects. Is there an extension somewhere that already does this that I can have a look at?</p>
<p dir="auto">Thanks!<br />
Andy</p>
]]></description><link>https://forum.robofont.com/post/1794</link><guid isPermaLink="true">https://forum.robofont.com/post/1794</guid><dc:creator><![CDATA[andyclymer]]></dc:creator><pubDate>Sat, 27 Oct 2018 10:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Undo manager on Sun, 28 Oct 2018 11:53:01 GMT]]></title><description><![CDATA[<p dir="auto">could you provide an example what you want to undo?</p>
<p dir="auto">I would propose to use the <code>glyph.lib</code> as data storage and call <code>glyph.lib.prepareUndo("My Change")</code> and <code>glyph.lib.performUndo()</code> when you are done.</p>
]]></description><link>https://forum.robofont.com/post/1795</link><guid isPermaLink="true">https://forum.robofont.com/post/1795</guid><dc:creator><![CDATA[frederik]]></dc:creator><pubDate>Sun, 28 Oct 2018 11:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to Undo manager on Sun, 28 Oct 2018 22:14:20 GMT]]></title><description><![CDATA[<p dir="auto">It's in my <a href="https://github.com/andyclymer/BlueZoneEditor-roboFontExt/blob/master/BlueZoneEditor.roboFontExt/lib/Blues.py" rel="nofollow">BlueZoneEditor</a> tool...</p>
<p dir="auto">There's a delay when reading/writing to the <code>font.info</code> so I hold all of the zone data aside, it makes the editing feel smoother and more interactive. It's a little bit overkill but each of the blue zones are their own object, and I'd like for changes to those objects to be undoable.</p>
<p dir="auto">I think I'll take your advice and see if it still feels quick enough to read/write them into the <code>font.lib</code> even though there's still a tiny delay when doing this, but that might be better than how I have it now.</p>
<p dir="auto">Thanks for the suggestion!</p>
]]></description><link>https://forum.robofont.com/post/1796</link><guid isPermaLink="true">https://forum.robofont.com/post/1796</guid><dc:creator><![CDATA[andyclymer]]></dc:creator><pubDate>Sun, 28 Oct 2018 22:14:20 GMT</pubDate></item><item><title><![CDATA[Reply to Undo manager on Sat, 03 Nov 2018 08:37:15 GMT]]></title><description><![CDATA[<p dir="auto">mmm I see the problem is that its edits the blue zones, and when the font info has changed, RF will update tons of views and cells...</p>
<p dir="auto">I would store it temporarily in <code>font.lib</code> while editing (as you want to jump to different glyphs and see the same values). When not editing (dragging fe) write it back in the <code>font.info</code>.</p>
]]></description><link>https://forum.robofont.com/post/1807</link><guid isPermaLink="true">https://forum.robofont.com/post/1807</guid><dc:creator><![CDATA[frederik]]></dc:creator><pubDate>Sat, 03 Nov 2018 08:37:15 GMT</pubDate></item></channel></rss>