diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-09-29 14:13:32 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-09-29 14:13:32 -0600 |
commit | 0c64e4a2c98cbf5e7b95dbea31c2e6993b70472c (patch) | |
tree | bc20e7f53cf2e3afe578b758baab1234bf3d8b2f /components | |
parent | d92e781a87b5a998f06580fa959c3ccb5cf14dcf (diff) | |
parent | 9cf43877f268221f4d7c2eea5a89bffb55709c71 (diff) | |
download | servo-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.rs | 22 | ||||
-rw-r--r-- | components/script/dom/htmlinputelement.rs | 10 |
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 + } } } |