From 28e5abe60667653464336ce04a274a907c807d83 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Wed, 1 Apr 2020 11:30:21 +0200 Subject: [PATCH] Introduce >::focus_state --- components/script/dom/element.rs | 12 ++++++++++++ components/script/dom/htmlinputelement.rs | 2 +- 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> { - if !(*self.unsafe_get()).upcast::().focus_state() { + if !self.upcast::().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> { - if !(*self.unsafe_get()).upcast::().focus_state() { + if !self.upcast::().focus_state() { return None; } let textinput = (*self.unsafe_get()).textinput.borrow_for_layout();