diff options
author | New Tobin Paradigm <email@mattatobin.com> | 2018-04-14 18:10:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-14 18:10:57 -0400 |
commit | 8b779470cd4f0ccc3d8f3050bddc025101837f77 (patch) | |
tree | 0ea47c06c204215aa707548c983faee6f24bbd53 /dom | |
parent | da3451bb3d3ff98c0c4781757aa010daf0513ab7 (diff) | |
parent | 64875ed348082e1ebef107a23c07799b973764c1 (diff) | |
download | UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.gz UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.lz UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.xz UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.zip |
Merge pull request #166 from janekptacijarabaci/html_input_maxlength_1
moebius#53: HTML - input - support for dynamic maxlength
Diffstat (limited to 'dom')
-rw-r--r-- | dom/html/nsTextEditorState.cpp | 31 | ||||
-rw-r--r-- | dom/html/nsTextEditorState.h | 2 |
2 files changed, 15 insertions, 18 deletions
diff --git a/dom/html/nsTextEditorState.cpp b/dom/html/nsTextEditorState.cpp index d70199362..187afb66d 100644 --- a/dom/html/nsTextEditorState.cpp +++ b/dom/html/nsTextEditorState.cpp @@ -1418,19 +1418,16 @@ nsTextEditorState::PrepareEditor(const nsAString *aValue) } } - if (shouldInitializeEditor) { - // Initialize the plaintext editor - nsCOMPtr<nsIPlaintextEditor> textEditor(do_QueryInterface(newEditor)); - if (textEditor) { + // Initialize the plaintext editor + nsCOMPtr<nsIPlaintextEditor> textEditor = do_QueryInterface(newEditor); + if (textEditor) { + if (shouldInitializeEditor) { // Set up wrapping textEditor->SetWrapColumn(GetWrapCols()); - - // Set max text field length - int32_t maxLength; - if (GetMaxLength(&maxLength)) { - textEditor->SetMaxTextLength(maxLength); - } } + + // Set max text field length + textEditor->SetMaxTextLength(GetMaxLength()); } nsCOMPtr<nsIContent> content = do_QueryInterface(mTextCtrlElement); @@ -1895,22 +1892,22 @@ be called if @placeholder is the empty string when trimmed from line breaks"); return NS_OK; } -bool -nsTextEditorState::GetMaxLength(int32_t* aMaxLength) +int32_t +nsTextEditorState::GetMaxLength() { nsCOMPtr<nsIContent> content = do_QueryInterface(mTextCtrlElement); nsGenericHTMLElement* element = nsGenericHTMLElement::FromContentOrNull(content); - NS_ENSURE_TRUE(element, false); + if (NS_WARN_IF(!element)) { + return -1; + } const nsAttrValue* attr = element->GetParsedAttr(nsGkAtoms::maxlength); if (attr && attr->Type() == nsAttrValue::eInteger) { - *aMaxLength = attr->GetIntegerValue(); - - return true; + return attr->GetIntegerValue(); } - return false; + return -1; } void diff --git a/dom/html/nsTextEditorState.h b/dom/html/nsTextEditorState.h index 11494f155..caf5e8eed 100644 --- a/dom/html/nsTextEditorState.h +++ b/dom/html/nsTextEditorState.h @@ -203,7 +203,7 @@ public: * @param aMaxLength the value of the max length attr * @returns false if attr not defined */ - bool GetMaxLength(int32_t* aMaxLength); + int32_t GetMaxLength(); void ClearValueCache() { mCachedValue.Truncate(); } |