diff --git a/LPMultiLineTextField.j b/LPMultiLineTextField.j index b8b53b1..74ea007 100644 --- a/LPMultiLineTextField.j +++ b/LPMultiLineTextField.j @@ -184,6 +184,8 @@ var CPTextFieldInputOwner = nil; { if (_stringValue !== [self stringValue]) { + [[[[self window] undoManager] prepareWithInvocationTarget:self] setStringValue:_stringValue]; + [[[self window] undoManager] setActionName:@"Typing"]; _stringValue = [self stringValue]; if (!_isEditing) @@ -207,14 +209,7 @@ var CPTextFieldInputOwner = nil; - (BOOL)becomeFirstResponder { _stringValue = [self stringValue]; - [self setThemeState:CPThemeStateEditing]; - - setTimeout(function(){ - [self _DOMTextareaElement].focus(); - CPTextFieldInputOwner = self; - }, 0.0); - [self textDidFocus:[CPNotification notificationWithName:CPTextFieldDidFocusNotification object:self userInfo:nil]]; return YES; @@ -250,6 +245,8 @@ var CPTextFieldInputOwner = nil; - (void)setStringValue:(CPString)aString { + if(_stringValue != aString) + [[[[self window] undoManager] prepareWithInvocationTarget:self] setStringValue:_stringValue]; _stringValue = aString; [self setNeedsLayout]; }