From mboxrd@z Thu Jan 1 00:00:00 1970 From: rlane@club.cc.cmu.edu (Rich Lane) Date: Fri, 11 Sep 2009 15:52:24 -0400 Subject: [sup-talk] How hard would a universal undo be? In-Reply-To: <1252660564-sup-4253@peray> References: <1252517083-sup-58@yoom.home.cworth.org> <1252599828-sup-7368@zyrg.net> <1252660564-sup-4253@peray> Message-ID: <1252685502-sup-8928@zyrg.net> Excerpts from Nicolas Pouillard's message of Fri Sep 11 05:16:49 -0400 2009: > Excerpts from Rich Lane's message of Fri Sep 11 00:45:20 +0200 2009: > > Excerpts from Carl Worth's message of Wed Sep 09 13:32:30 -0400 2009: > > > Would it be a small change to move the undo keybinding to somewhere > > > more universal? > > > > No :( > > > > > As a first cut, I'd be happy if it just undid the changes to the > > > index, even without undoing any interface changes. That is, if my > > > previous command was archive-thread-and-view-next-thread, it would be > > > OK if it just undid the archiving part. Bonus points if it also undoes > > > the view-next part, but I can imagine that being more work. > > > > I know I sound a bit like a broken record here, but immediate > > label changes will solve this problem. Then, the undo system would just > > need to keep a global stack of (msgid, previous_labels). I'm just hoping > > somebody will volunteer for this - it will be a big patch. > > What prevent us from having a global stack of (msgid, previous_labels) in > the actual settings? Hmm, you may be right. I was thinking that changes weren't propagated between buffers except on save, but that's wrong because UpdateManager is called in the keybinding. In that case, the user sees a mostly* linear series of label changes, so it's safe to have a global undo stack. * User opens thread-index-mode A containing message M with labels L1 User changes labels on A.M to L2 User opens thread-index-mode B containing message M with labels L1 User changes labels on B.M to L3 UpdateManager changes labels on A.M to L3 User hits 'u' - now A.M and B.M have labels L1