- From: Ryosuke Niwa <rniwa@webkit.org>
- Date: Thu, 28 Jul 2011 00:38:46 -0700
On Wed, Jul 27, 2011 at 11:44 PM, Alex Vincent <ajvincent at gmail.com> wrote: > > I'm seeing one major hole in your interface: you don't clearly specify how > to *end* a transaction group. This really matters for when I want to > start a group manually, do a bunch of little things, and then end the group. > You can end a transaction group if you call transact or replace with merge=false. Personally, I think Jonas's API is better than yours, for its simplicity, > but it doesn't allow for adding manual transactions in the middle of a > grouped transaction. With his model, one explicitly calls out when a > transaction should happen - there's no ambiguity, and when I don't want a > transaction, I don't get one. With your model, it's harder to tell, and > very much either implementation-dependent or specification-dependent when a > transaction happens natively and when it doesn't. That makes it prone to > bugginess / inconsistent behavior. I don't quite get what you mean here. Could you elaborate a little? I'd personally take elements of both API's, myself: add your > ManualTransaction interface and > UndoManager.applyManualStep(ManualTransaction) to Jonas's last UndoManager > interface. That was my initial thinking as well. However, > I also like the tendency of your API to make each transaction its own > object, where we can store properties besides just the title on each > transaction. making all transactions objects will allow authors and UAs to provide arbitrary properties on them. Also, I wanted the transaction objects be provided during undo, redo, and hypothetical edit action or new transaction events. - Ryosuke
Received on Thursday, 28 July 2011 00:38:46 UTC