aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-09-29 14:13:32 -0600
committerbors-servo <metajack+bors@gmail.com>2015-09-29 14:13:32 -0600
commit0c64e4a2c98cbf5e7b95dbea31c2e6993b70472c (patch)
treebc20e7f53cf2e3afe578b758baab1234bf3d8b2f /components
parentd92e781a87b5a998f06580fa959c3ccb5cf14dcf (diff)
parent9cf43877f268221f4d7c2eea5a89bffb55709c71 (diff)
downloadservo-0c64e4a2c98cbf5e7b95dbea31c2e6993b70472c.tar.gz
servo-0c64e4a2c98cbf5e7b95dbea31c2e6993b70472c.zip
Auto merge of #7764 - j3parker:input-caret-only-for-text, r=pcwalton
Only display text carets in text inputs For #7756 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7764) <!-- Reviewable:end -->
Diffstat (limited to 'components')
-rw-r--r--components/layout/wrapper.rs22
-rw-r--r--components/script/dom/htmlinputelement.rs10
2 files changed, 19 insertions, 13 deletions
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 678ebd63582..17102f0095d 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -954,18 +954,20 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
let insertion_point = unsafe {
input.get_insertion_point_for_layout()
};
- let text = unsafe {
- input.get_value_for_layout()
- };
-
- let mut character_count = 0;
- for (character_index, _) in text.char_indices() {
- if character_index == insertion_point.index {
- return Some(CharIndex(character_count))
+ if let Some(insertion_point) = insertion_point {
+ let text = unsafe {
+ input.get_value_for_layout()
+ };
+
+ let mut character_count = 0;
+ for (character_index, _) in text.char_indices() {
+ if character_index == insertion_point.index {
+ return Some(CharIndex(character_count))
+ }
+ character_count += 1
}
- character_count += 1
+ return Some(CharIndex(character_count))
}
- return Some(CharIndex(character_count))
}
None
}
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 40020a74d14..a07529ebbec 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -143,7 +143,7 @@ pub trait LayoutHTMLInputElementHelpers {
#[allow(unsafe_code)]
unsafe fn get_size_for_layout(self) -> u32;
#[allow(unsafe_code)]
- unsafe fn get_insertion_point_for_layout(self) -> TextPoint;
+ unsafe fn get_insertion_point_for_layout(self) -> Option<TextPoint>;
}
pub trait RawLayoutHTMLInputElementHelpers {
@@ -197,8 +197,12 @@ impl LayoutHTMLInputElementHelpers for LayoutJS<HTMLInputElement> {
#[allow(unrooted_must_root)]
#[allow(unsafe_code)]
- unsafe fn get_insertion_point_for_layout(self) -> TextPoint {
- (*self.unsafe_get()).textinput.borrow_for_layout().edit_point
+ unsafe fn get_insertion_point_for_layout(self) -> Option<TextPoint> {
+ match (*self.unsafe_get()).input_type.get() {
+ InputType::InputText | InputType::InputPassword =>
+ Some((*self.unsafe_get()).textinput.borrow_for_layout().edit_point),
+ _ => None
+ }
}
}