diff options
author | athenian200 <athenian200@outlook.com> | 2020-05-20 23:25:37 -0500 |
---|---|---|
committer | athenian200 <athenian200@outlook.com> | 2020-05-20 23:25:37 -0500 |
commit | a965486fcbf3f199b5c7564bfc0526df72c862d5 (patch) | |
tree | b6238d784e74ab2912a35ab14caabe96734bd469 /dom/html/nsGenericHTMLElement.cpp | |
parent | 3da22ea943f6e7840558ddd1e4b473bef5837873 (diff) | |
download | UXP-a965486fcbf3f199b5c7564bfc0526df72c862d5.tar UXP-a965486fcbf3f199b5c7564bfc0526df72c862d5.tar.gz UXP-a965486fcbf3f199b5c7564bfc0526df72c862d5.tar.lz UXP-a965486fcbf3f199b5c7564bfc0526df72c862d5.tar.xz UXP-a965486fcbf3f199b5c7564bfc0526df72c862d5.zip |
Revert "Merge pull request #1357 from athenian200/form-disabled-issue"
This reverts commit ed88b99849156004c04e4a0c87ea9b2360ef19b6, reversing
changes made to c4b0715baaffc541670fd1158557aa7e61e521d3.
Diffstat (limited to 'dom/html/nsGenericHTMLElement.cpp')
-rw-r--r-- | dom/html/nsGenericHTMLElement.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/dom/html/nsGenericHTMLElement.cpp b/dom/html/nsGenericHTMLElement.cpp index 3cf19ea8f..aa70f9cdf 100644 --- a/dom/html/nsGenericHTMLElement.cpp +++ b/dom/html/nsGenericHTMLElement.cpp @@ -2108,6 +2108,14 @@ nsGenericHTMLFormElement::PreHandleEvent(EventChainVisitor& aVisitor) return nsGenericHTMLElement::PreHandleEvent(aVisitor); } +/* virtual */ +bool +nsGenericHTMLFormElement::IsDisabled() const +{ + return HasAttr(kNameSpaceID_None, nsGkAtoms::disabled) || + (mFieldSet && mFieldSet->IsDisabled()); +} + void nsGenericHTMLFormElement::ForgetFieldSet(nsIContent* aFieldset) { @@ -2299,13 +2307,14 @@ nsGenericHTMLFormElement::IsElementDisabledForEvents(EventMessage aMessage, break; } - // FIXME(emilio): This poking at the style of the frame is slightly bogus - // unless we flush before every event, which we don't really want to do. - if (aFrame && - aFrame->StyleUserInterface()->mUserInput == StyleUserInput::None) { - return true; + bool disabled = IsDisabled(); + if (!disabled && aFrame) { + const nsStyleUserInterface* uiStyle = aFrame->StyleUserInterface(); + disabled = uiStyle->mUserInput == StyleUserInput::None || + uiStyle->mUserInput == StyleUserInput::Disabled; + } - return IsDisabled(); + return disabled; } void |