зеркало из https://github.com/mozilla/gecko-dev.git
Bug 841882 - Revert bug 597525.
This commit is contained in:
Родитель
bb1294b14d
Коммит
a5b100dbdf
|
@ -18,8 +18,8 @@ class nsTextControlFrame;
|
|||
|
||||
// IID for the nsITextControl interface
|
||||
#define NS_ITEXTCONTROLELEMENT_IID \
|
||||
{ 0x3558afa1, 0x6136, 0x4421, \
|
||||
{ 0xbd, 0xdc, 0x2c, 0x9d, 0x5f, 0xc1, 0xfb, 0x91 } }
|
||||
{ 0x3dd53b59, 0x9d8f, 0x40a3, \
|
||||
{ 0x81, 0xd7, 0xb3, 0x43, 0xa0, 0x51, 0xfc, 0xb5 } }
|
||||
|
||||
/**
|
||||
* This interface is used for the text control frame to get the editor and
|
||||
|
@ -76,6 +76,11 @@ public:
|
|||
*/
|
||||
NS_IMETHOD_(int32_t) GetRows() = 0;
|
||||
|
||||
/**
|
||||
* Get the default value of the text control
|
||||
*/
|
||||
NS_IMETHOD_(void) GetDefaultValueFromContent(nsAString& aValue) = 0;
|
||||
|
||||
/**
|
||||
* Return true if the value of the control has been changed.
|
||||
*/
|
||||
|
|
|
@ -353,6 +353,9 @@ HTMLTextAreaElement::SetValueChanged(bool aValueChanged)
|
|||
bool previousValue = mValueChanged;
|
||||
|
||||
mValueChanged = aValueChanged;
|
||||
if (!aValueChanged && !mState.IsEmpty()) {
|
||||
mState.EmptyValue();
|
||||
}
|
||||
|
||||
if (mValueChanged != previousValue) {
|
||||
UpdateState(true);
|
||||
|
@ -1379,6 +1382,12 @@ HTMLTextAreaElement::GetRows()
|
|||
return DEFAULT_ROWS_TEXTAREA;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(void)
|
||||
nsHTMLTextAreaElement::GetDefaultValueFromContent(nsAString& aValue)
|
||||
{
|
||||
GetDefaultValue(aValue);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(bool)
|
||||
HTMLTextAreaElement::ValueChanged() const
|
||||
{
|
||||
|
|
|
@ -87,6 +87,7 @@ public:
|
|||
NS_IMETHOD_(int32_t) GetCols();
|
||||
NS_IMETHOD_(int32_t) GetWrapCols();
|
||||
NS_IMETHOD_(int32_t) GetRows();
|
||||
NS_IMETHOD_(void) GetDefaultValueFromContent(nsAString& aValue);
|
||||
NS_IMETHOD_(bool) ValueChanged() const;
|
||||
NS_IMETHOD_(void) GetTextEditorValue(nsAString& aValue, bool aIgnoreWrap) const;
|
||||
NS_IMETHOD_(nsIEditor*) GetTextEditor();
|
||||
|
|
|
@ -5557,6 +5557,20 @@ nsHTMLInputElement::GetRows()
|
|||
return DEFAULT_ROWS;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(void)
|
||||
nsHTMLInputElement::GetDefaultValueFromContent(nsAString& aValue)
|
||||
{
|
||||
nsTextEditorState *state = GetEditorState();
|
||||
if (state) {
|
||||
GetDefaultValue(aValue);
|
||||
// This is called by the frame to show the value.
|
||||
// We have to sanitize it when needed.
|
||||
if (!mParserCreating) {
|
||||
SanitizeValue(aValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(bool)
|
||||
nsHTMLInputElement::ValueChanged() const
|
||||
{
|
||||
|
|
|
@ -147,6 +147,7 @@ public:
|
|||
NS_IMETHOD_(int32_t) GetCols();
|
||||
NS_IMETHOD_(int32_t) GetWrapCols();
|
||||
NS_IMETHOD_(int32_t) GetRows();
|
||||
NS_IMETHOD_(void) GetDefaultValueFromContent(nsAString& aValue);
|
||||
NS_IMETHOD_(bool) ValueChanged() const;
|
||||
NS_IMETHOD_(void) GetTextEditorValue(nsAString& aValue, bool aIgnoreWrap) const;
|
||||
NS_IMETHOD_(nsIEditor*) GetTextEditor();
|
||||
|
|
|
@ -1747,7 +1747,9 @@ nsTextEditorState::GetValue(nsAString& aValue, bool aIgnoreWrap) const
|
|||
mCachedValue.Truncate();
|
||||
}
|
||||
} else {
|
||||
if (mValue) {
|
||||
if (!mTextCtrlElement->ValueChanged() || !mValue) {
|
||||
mTextCtrlElement->GetDefaultValueFromContent(aValue);
|
||||
} else {
|
||||
aValue = NS_ConvertUTF8toUTF16(*mValue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,6 +137,8 @@ public:
|
|||
void SetValue(const nsAString& aValue, bool aUserInput,
|
||||
bool aSetValueAsChanged);
|
||||
void GetValue(nsAString& aValue, bool aIgnoreWrap) const;
|
||||
void EmptyValue() { if (mValue) mValue->Truncate(); }
|
||||
bool IsEmpty() const { return mValue ? mValue->IsEmpty() : true; }
|
||||
|
||||
nsresult CreatePlaceholderNode();
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче