diff options
author | Anthony Ramine <nox@nox.paris> | 2020-04-01 11:30:21 +0200 |
---|---|---|
committer | Anthony Ramine <nox@nox.paris> | 2020-04-01 11:40:56 +0200 |
commit | 28e5abe60667653464336ce04a274a907c807d83 (patch) | |
tree | f96dad596588d1fe28740b0fb6ebd9a0522401b7 /components | |
parent | 295f1204257a804a866e48efcc95c226fd7ea3ed (diff) | |
download | servo-28e5abe60667653464336ce04a274a907c807d83.tar.gz servo-28e5abe60667653464336ce04a274a907c807d83.zip |
Introduce <LayoutDom<Element>>::focus_state
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/element.rs | 12 | ||||
-rwxr-xr-x | components/script/dom/htmlinputelement.rs | 2 | ||||
-rwxr-xr-x | components/script/dom/htmltextareaelement.rs | 2 |
3 files changed, 14 insertions, 2 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index fd5ef8e4ebb..87d4327562d 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -592,6 +592,18 @@ pub trait LayoutElementHelpers<'dom> { fn get_attr_vals_for_layout(self, name: &LocalName) -> Vec<&'dom AttrValue>; } +impl<'dom> LayoutDom<'dom, Element> { + #[allow(unsafe_code)] + pub(super) fn focus_state(self) -> bool { + unsafe { + self.unsafe_get() + .state + .get() + .contains(ElementState::IN_FOCUS_STATE) + } + } +} + impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> { #[allow(unsafe_code)] #[inline] diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index f84296b3a66..1e38abc9feb 100755 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -780,7 +780,7 @@ impl<'dom> LayoutHTMLInputElementHelpers<'dom> for LayoutDom<'dom, HTMLInputElem #[allow(unsafe_code)] unsafe fn selection_for_layout(self) -> Option<Range<usize>> { - if !(*self.unsafe_get()).upcast::<Element>().focus_state() { + if !self.upcast::<Element>().focus_state() { return None; } diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 1e1e04ee4cb..1cfd6903302 100755 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -96,7 +96,7 @@ impl LayoutHTMLTextAreaElementHelpers for LayoutDom<'_, HTMLTextAreaElement> { #[allow(unsafe_code)] unsafe fn selection_for_layout(self) -> Option<Range<usize>> { - if !(*self.unsafe_get()).upcast::<Element>().focus_state() { + if !self.upcast::<Element>().focus_state() { return None; } let textinput = (*self.unsafe_get()).textinput.borrow_for_layout(); |