mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
style: Don't use attribute selectors for determining if a select is a drop down or a list box.
Instead add a pseudo-class that does the expected size="" attribute parsing. Removing the Gtk-specific rule setting the text color since it doesn't seem to have any effect currently. Differential Revision: https://phabricator.services.mozilla.com/D83448
This commit is contained in:
parent
a2b016157e
commit
5752e4a3a2
4 changed files with 19 additions and 0 deletions
|
@ -32,6 +32,7 @@ macro_rules! apply_non_ts_list {
|
|||
[
|
||||
("-moz-table-border-nonzero", MozTableBorderNonzero, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS),
|
||||
("-moz-browser-frame", MozBrowserFrame, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME),
|
||||
("-moz-select-list-box", MozSelectListBox, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS),
|
||||
("link", Link, IN_UNVISITED_STATE, _),
|
||||
("any-link", AnyLink, IN_VISITED_OR_UNVISITED_STATE, _),
|
||||
("visited", Visited, IN_VISITED_STATE, _),
|
||||
|
|
|
@ -2116,6 +2116,9 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
|
|||
bindings::Gecko_IsTableBorderNonzero(self.0)
|
||||
},
|
||||
NonTSPseudoClass::MozBrowserFrame => unsafe { bindings::Gecko_IsBrowserFrame(self.0) },
|
||||
NonTSPseudoClass::MozSelectListBox => unsafe {
|
||||
bindings::Gecko_IsSelectListBox(self.0)
|
||||
},
|
||||
NonTSPseudoClass::MozIsHTML => self.is_html_element_in_html_document(),
|
||||
NonTSPseudoClass::MozLWTheme => self.document_theme() != DocumentTheme::Doc_Theme_None,
|
||||
NonTSPseudoClass::MozLWThemeBrightText => {
|
||||
|
|
|
@ -239,6 +239,15 @@ where
|
|||
}
|
||||
},
|
||||
|
||||
#[cfg(feature = "gecko")]
|
||||
NonTSPseudoClass::MozSelectListBox => {
|
||||
if let Some(snapshot) = self.snapshot() {
|
||||
if snapshot.has_other_pseudo_class_state() {
|
||||
return snapshot.mIsSelectListBox();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// :lang() needs to match using the closest ancestor xml:lang="" or
|
||||
// lang="" attribtue from snapshots.
|
||||
NonTSPseudoClass::Lang(ref lang_arg) => {
|
||||
|
|
|
@ -506,6 +506,12 @@ impl<'a> SelectorVisitor for SelectorDependencyCollector<'a> {
|
|||
NonTSPseudoClass::MozTableBorderNonzero => local_name!("border"),
|
||||
#[cfg(feature = "gecko")]
|
||||
NonTSPseudoClass::MozBrowserFrame => local_name!("mozbrowser"),
|
||||
#[cfg(feature = "gecko")]
|
||||
NonTSPseudoClass::MozSelectListBox => {
|
||||
// This depends on two attributes.
|
||||
return self.add_attr_dependency(local_name!("multiple")) &&
|
||||
self.add_attr_dependency(local_name!("size"));
|
||||
},
|
||||
NonTSPseudoClass::Lang(..) => local_name!("lang"),
|
||||
_ => return true,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue