aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorAnthony Ramine <nox@nox.paris>2020-04-01 11:30:21 +0200
committerAnthony Ramine <nox@nox.paris>2020-04-01 11:40:56 +0200
commit28e5abe60667653464336ce04a274a907c807d83 (patch)
treef96dad596588d1fe28740b0fb6ebd9a0522401b7 /components
parent295f1204257a804a866e48efcc95c226fd7ea3ed (diff)
downloadservo-28e5abe60667653464336ce04a274a907c807d83.tar.gz
servo-28e5abe60667653464336ce04a274a907c807d83.zip
Introduce <LayoutDom<Element>>::focus_state
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/element.rs12
-rwxr-xr-xcomponents/script/dom/htmlinputelement.rs2
-rwxr-xr-xcomponents/script/dom/htmltextareaelement.rs2
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();