Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only display text carets in text inputs #7764

Merged
merged 1 commit into from Sep 29, 2015
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -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
}
@@ -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
}
}
}

@@ -335,6 +335,7 @@ device-pixel-ratio=2 != pixel_snapping_border_a.html pixel_snapping_border_ref.h
== stacking_context_overflow_a.html stacking_context_overflow_ref.html
== stacking_context_overflow_relative_outline_a.html stacking_context_overflow_relative_outline_ref.html
== style_is_in_doc.html style_is_in_doc_ref.html
== submit_focus_a.html submit_focus_b.html
== table_auto_width.html table_auto_width_ref.html
== table_caption_bottom_a.html table_caption_bottom_ref.html
== table_caption_top_a.html table_caption_top_ref.html
@@ -0,0 +1,10 @@
<style>
button {
display: inline-block;
}
</style>
<button id="1">Submit</button>
<script>
var elem = document.getElementById('1');
elem.focus();
</script>
@@ -0,0 +1,11 @@
<style>
input {
padding-left: 0;
padding-right: 0;
}
</style>
<input id="1" type="submit"></input>
<script>
var elem = document.getElementById('1');
elem.focus();
</script>
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.