summaryrefslogtreecommitdiffstats
path: root/dom/html/nsGenericHTMLElement.cpp
diff options
context:
space:
mode:
authorathenian200 <athenian200@outlook.com>2020-05-20 23:25:37 -0500
committerathenian200 <athenian200@outlook.com>2020-05-20 23:25:37 -0500
commita965486fcbf3f199b5c7564bfc0526df72c862d5 (patch)
treeb6238d784e74ab2912a35ab14caabe96734bd469 /dom/html/nsGenericHTMLElement.cpp
parent3da22ea943f6e7840558ddd1e4b473bef5837873 (diff)
downloadUXP-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.cpp21
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