From c55e1ac99cdbd224ca287748ea8fcd903c51b7af Mon Sep 17 00:00:00 2001 From: Francisco Tolmasky Date: Tue, 14 Apr 2009 15:29:37 -0700 Subject: [PATCH 1/2] Fixed a bug where placeholder state was not updated correctly. Reviewed by me. --- AppKit/CPTextField.j | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index b79159bbc..10f0cfa29 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -361,6 +361,9 @@ CPTextFieldStatePlaceholder = 1 << 13; - (BOOL)becomeFirstResponder { _controlState |= CPControlStateEditing; + + [self _updatePlaceholderState]; + [self setNeedsLayout]; #if PLATFORM(DOM) @@ -470,6 +473,9 @@ CPTextFieldStatePlaceholder = 1 << 13; - (BOOL)resignFirstResponder { _controlState &= ~CPControlStateEditing; + + [self _updatePlaceholderState]; + [self setNeedsLayout]; #if PLATFORM(DOM) @@ -522,19 +528,24 @@ CPTextFieldStatePlaceholder = 1 << 13; { [super setObjectValue:aValue]; -/* -#if PLATFORM(DOM) - if ([[self window] firstResponder] == self) - [[self class] _inputElement].value = displayString; -#endif -*/ + [self _updatePlaceholderState]; +} - var string = [self stringValue]; +- (void)_updatePlaceholderState +{ + var string = [self stringValue], + controlState = _controlState; - if (!string || [string length] === 0) + if ((!string || [string length] === 0) && !(_controlState & CPControlStateEditing)) _controlState |= CPTextFieldStatePlaceholder; else _controlState &= ~CPTextFieldStatePlaceholder; + + if (_controlState !== controlState) + { + [self setNeedsLayout]; + [self setNeedsDisplay:YES]; + } } /*! From 86b780aa2e233587cf9a5ec43bf31f7190c04ad8 Mon Sep 17 00:00:00 2001 From: Tom Robinson Date: Tue, 14 Apr 2009 15:55:41 -0700 Subject: [PATCH 2/2] Add Build to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 68dba5b20..1375d2bd3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store Frameworks +Build