mirror of
https://github.com/servo/servo
synced 2026-05-05 06:32:13 +02:00
script: Update rust-selectors to get :active support.
I couldn't find the place in the spec where the precise behavior of `:active` is described, so I don't set it. However, all the machinery to keep track of its status is in place. Improves YouTube.
This commit is contained in:
@@ -170,6 +170,8 @@ bitflags! {
|
||||
#[doc = "Specifies whether this node is focusable and whether it is supposed \
|
||||
to be reachable with using sequential focus navigation."]
|
||||
const SEQUENTIALLY_FOCUSABLE = 0x400,
|
||||
#[doc = "Specifies whether this node is active."]
|
||||
const IN_ACTIVE_STATE = 0x800,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -458,6 +460,9 @@ pub trait NodeHelpers {
|
||||
fn get_focus_state(self) -> bool;
|
||||
fn set_focus_state(self, state: bool);
|
||||
|
||||
fn get_active_state(self) -> bool;
|
||||
fn set_active_state(self, state: bool);
|
||||
|
||||
fn get_disabled_state(self) -> bool;
|
||||
fn set_disabled_state(self, state: bool);
|
||||
|
||||
@@ -635,6 +640,15 @@ impl<'a> NodeHelpers for &'a Node {
|
||||
self.dirty(NodeDamage::NodeStyleDamaged);
|
||||
}
|
||||
|
||||
fn get_active_state(self) -> bool {
|
||||
self.get_flag(IN_ACTIVE_STATE)
|
||||
}
|
||||
|
||||
fn set_active_state(self, state: bool) {
|
||||
self.set_flag(IN_ACTIVE_STATE, state);
|
||||
self.dirty(NodeDamage::NodeStyleDamaged);
|
||||
}
|
||||
|
||||
fn get_disabled_state(self) -> bool {
|
||||
self.get_flag(IN_DISABLED_STATE)
|
||||
}
|
||||
@@ -1115,6 +1129,7 @@ pub trait LayoutNodeHelpers {
|
||||
|
||||
fn get_hover_state_for_layout(&self) -> bool;
|
||||
fn get_focus_state_for_layout(&self) -> bool;
|
||||
fn get_active_state_for_layout(&self) -> bool;
|
||||
fn get_disabled_state_for_layout(&self) -> bool;
|
||||
fn get_enabled_state_for_layout(&self) -> bool;
|
||||
}
|
||||
@@ -1229,6 +1244,13 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
|
||||
}
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
fn get_active_state_for_layout(&self) -> bool {
|
||||
unsafe {
|
||||
self.get_flag(IN_ACTIVE_STATE)
|
||||
}
|
||||
}
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
fn get_disabled_state_for_layout(&self) -> bool {
|
||||
unsafe {
|
||||
self.get_flag(IN_DISABLED_STATE)
|
||||
|
||||
Reference in New Issue
Block a user