diff --git a/mozilla/content/html/content/src/nsHTMLAtomList.h b/mozilla/content/html/content/src/nsHTMLAtomList.h index 6ba1f449afa..98b61a5ea54 100644 --- a/mozilla/content/html/content/src/nsHTMLAtomList.h +++ b/mozilla/content/html/content/src/nsHTMLAtomList.h @@ -62,7 +62,6 @@ HTML_ATOM(mozSingleLineTextControlFrame, ":-moz-singleline-textcontrol-frame") HTML_ATOM(mozFocusInnerPseudo, ":-moz-focus-inner") HTML_ATOM(mozFocusOuterPseudo, ":-moz-focus-outer") HTML_ATOM(mozDisplayComboboxControlFrame, ":-moz-display-comboboxcontrol-frame") -HTML_ATOM(inputCheckedPseudo, "_moz-input-checked") HTML_ATOM(_baseHref, NS_HTML_BASE_HREF) HTML_ATOM(_baseTarget, NS_HTML_BASE_TARGET) diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp index b2227e91546..fd5a66dd3f4 100644 --- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp @@ -94,6 +94,7 @@ #include "nsMutationEvent.h" #include "nsRuleNode.h" +#include "nsCSSAtoms.h" // input type=file #include "nsIMIMEService.h" @@ -881,14 +882,10 @@ nsHTMLInputElement::SetCheckedInternal(PRBool aChecked) // You don't refcount frames. } } - // special attr for XBL form controls - else if (type == NS_FORM_INPUT_CHECKBOX) { - if (aChecked) - SetAttr(kNameSpaceID_None, nsHTMLAtoms::inputCheckedPseudo, - NS_LITERAL_STRING(""), PR_TRUE); - else - UnsetAttr(kNameSpaceID_None, nsHTMLAtoms::inputCheckedPseudo, PR_TRUE); - } + + // Notify the document that the CSS :checked pseudoclass for this element + // has changed state. + mDocument->ContentStatesChanged(this, nsnull, nsCSSAtoms::checkedPseudo); return NS_OK; } diff --git a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp index 51ceaef5422..6d25d50daf2 100644 --- a/mozilla/content/html/style/src/nsCSSStyleSheet.cpp +++ b/mozilla/content/html/style/src/nsCSSStyleSheet.cpp @@ -70,6 +70,7 @@ #include "nsIDOMHTMLAnchorElement.h" #include "nsIDOMHTMLLinkElement.h" #include "nsIDOMHTMLAreaElement.h" +#include "nsIDOMHTMLInputElement.h" #include "nsIDOMHTMLOptionElement.h" #include "nsIDOMStyleSheetList.h" #include "nsIDOMCSSStyleSheet.h" @@ -3312,6 +3313,9 @@ RuleProcessorData::RuleProcessorData(nsIPresContext* aPresContext, if (mContentTag == nsHTMLAtoms::option) { nsCOMPtr optEl = do_QueryInterface(mContent); optEl->GetSelected(&isChecked); + } else if (mContentTag == nsHTMLAtoms::input) { + nsCOMPtr inputEl = do_QueryInterface(mContent); + inputEl->GetChecked(&isChecked); } mIsChecked = isChecked; diff --git a/mozilla/content/shared/public/nsHTMLAtomList.h b/mozilla/content/shared/public/nsHTMLAtomList.h index 6ba1f449afa..98b61a5ea54 100644 --- a/mozilla/content/shared/public/nsHTMLAtomList.h +++ b/mozilla/content/shared/public/nsHTMLAtomList.h @@ -62,7 +62,6 @@ HTML_ATOM(mozSingleLineTextControlFrame, ":-moz-singleline-textcontrol-frame") HTML_ATOM(mozFocusInnerPseudo, ":-moz-focus-inner") HTML_ATOM(mozFocusOuterPseudo, ":-moz-focus-outer") HTML_ATOM(mozDisplayComboboxControlFrame, ":-moz-display-comboboxcontrol-frame") -HTML_ATOM(inputCheckedPseudo, "_moz-input-checked") HTML_ATOM(_baseHref, NS_HTML_BASE_HREF) HTML_ATOM(_baseTarget, NS_HTML_BASE_TARGET) diff --git a/mozilla/layout/forms/resources/skin/checkbox.css b/mozilla/layout/forms/resources/skin/checkbox.css index 4732b6535b2..85c7fea3dce 100644 --- a/mozilla/layout/forms/resources/skin/checkbox.css +++ b/mozilla/layout/forms/resources/skin/checkbox.css @@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] { /* ..... checked state ..... */ -input[type="checkbox"][_moz-input-checked] { +input[type="checkbox"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif"); } -input[type="checkbox"][_moz-input-checked][disabled="true"] { +input[type="checkbox"][disabled="true"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important } diff --git a/mozilla/layout/html/forms/resources/skin/checkbox.css b/mozilla/layout/html/forms/resources/skin/checkbox.css index 4732b6535b2..85c7fea3dce 100644 --- a/mozilla/layout/html/forms/resources/skin/checkbox.css +++ b/mozilla/layout/html/forms/resources/skin/checkbox.css @@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] { /* ..... checked state ..... */ -input[type="checkbox"][_moz-input-checked] { +input[type="checkbox"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif"); } -input[type="checkbox"][_moz-input-checked][disabled="true"] { +input[type="checkbox"][disabled="true"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important } diff --git a/mozilla/layout/style/nsCSSStyleSheet.cpp b/mozilla/layout/style/nsCSSStyleSheet.cpp index 51ceaef5422..6d25d50daf2 100644 --- a/mozilla/layout/style/nsCSSStyleSheet.cpp +++ b/mozilla/layout/style/nsCSSStyleSheet.cpp @@ -70,6 +70,7 @@ #include "nsIDOMHTMLAnchorElement.h" #include "nsIDOMHTMLLinkElement.h" #include "nsIDOMHTMLAreaElement.h" +#include "nsIDOMHTMLInputElement.h" #include "nsIDOMHTMLOptionElement.h" #include "nsIDOMStyleSheetList.h" #include "nsIDOMCSSStyleSheet.h" @@ -3312,6 +3313,9 @@ RuleProcessorData::RuleProcessorData(nsIPresContext* aPresContext, if (mContentTag == nsHTMLAtoms::option) { nsCOMPtr optEl = do_QueryInterface(mContent); optEl->GetSelected(&isChecked); + } else if (mContentTag == nsHTMLAtoms::input) { + nsCOMPtr inputEl = do_QueryInterface(mContent); + inputEl->GetChecked(&isChecked); } mIsChecked = isChecked; diff --git a/mozilla/themes/classic/forms/checkbox.css b/mozilla/themes/classic/forms/checkbox.css index 4732b6535b2..85c7fea3dce 100644 --- a/mozilla/themes/classic/forms/checkbox.css +++ b/mozilla/themes/classic/forms/checkbox.css @@ -56,11 +56,11 @@ input[type="checkbox"][disabled="true"] { /* ..... checked state ..... */ -input[type="checkbox"][_moz-input-checked] { +input[type="checkbox"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check.gif"); } -input[type="checkbox"][_moz-input-checked][disabled="true"] { +input[type="checkbox"][disabled="true"]:checked { list-style-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif") !important }