Bug 1729358 - Part 1: Move FocusState to TextControlElement; r=smaug

And convert FocusTristate to enum class.

Differential Revision: https://phabricator.services.mozilla.com/D124693
This commit is contained in:
Edgar Chen
2021-09-07 09:47:09 +00:00
parent f68ccfbe70
commit cd1f327b86
6 changed files with 26 additions and 24 deletions

View File

@@ -112,6 +112,22 @@ TextControlElement::GetTextControlElementFromEditingHost(nsIContent* aHost) {
return parent.forget();
}
TextControlElement::FocusTristate TextControlElement::FocusState() {
// We can't be focused if we aren't in a (composed) document
Document* doc = GetComposedDoc();
if (!doc) {
return FocusTristate::eUnfocusable;
}
// first see if we are disabled or not. If disabled then do nothing.
if (IsDisabled()) {
return FocusTristate::eUnfocusable;
}
return IsInActiveTab(doc) ? FocusTristate::eActiveWindow
: FocusTristate::eInactiveWindow;
}
using ValueChangeKind = TextControlElement::ValueChangeKind;
MOZ_CAN_RUN_SCRIPT inline nsresult SetEditorFlagsIfNecessary(