+2004-05-09 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Ken.
+
+ - avoid messing with undo manager needlessly for ~1% HTML iBench speedup
+
+ * WebCoreSupport.subproj/WebBridge.h:
+ * WebCoreSupport.subproj/WebBridge.m:
+ (-[WebBridge registerCommandForUndo:]): mark undo/redo item flag
+ (-[WebBridge registerCommandForRedo:]): ditto
+ (-[WebBridge clearUndoRedoOperations]): check flag before removing items,
+ and clear it after removing them
+
2004-05-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
BOOL _keyboardUIModeAccessed;
BOOL _doingClientRedirect;
BOOL _inNextKeyViewOutsideWebFrameViews;
+ BOOL _haveUndoRedoOperations;
}
- (id)initWithWebFrame:(WebFrame *)webFrame;
{
NSUndoManager *undoManager = [[_frame webView] undoManager];
[undoManager registerUndoWithTarget:self selector:@selector(undoEditing:) object:arg];
+ _haveUndoRedoOperations = YES;
}
- (void)registerCommandForRedo:(id)arg
{
NSUndoManager *undoManager = [[_frame webView] undoManager];
[undoManager registerUndoWithTarget:self selector:@selector(redoEditing:) object:arg];
+ _haveUndoRedoOperations = YES;
}
- (void)clearUndoRedoOperations
{
- NSUndoManager *undoManager = [[_frame webView] undoManager];
- [undoManager removeAllActionsWithTarget:self];
+ if (_haveUndoRedoOperations) {
+ NSUndoManager *undoManager = [[_frame webView] undoManager];
+ [undoManager removeAllActionsWithTarget:self];
+ _haveUndoRedoOperations = NO;
+ }
}
- (void)editingKeyDown:(NSEvent *)event