mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
layout: Make inline margins on <input type=button>
and friends apply
only to the button and not to the text inside. Improves the Google home page.
This commit is contained in:
parent
9fda72d60f
commit
8fe2f8930c
5 changed files with 47 additions and 5 deletions
|
@ -673,11 +673,13 @@ impl<'a> FlowConstructor<'a> {
|
|||
fn build_flow_for_block_like(&mut self, flow: FlowRef, node: &ThreadSafeLayoutNode)
|
||||
-> ConstructionResult {
|
||||
let mut initial_fragments = IntermediateInlineFragments::new();
|
||||
if node.get_pseudo_element_type() != PseudoElementType::Normal ||
|
||||
let node_is_input_or_text_area =
|
||||
node.type_id() == Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
|
||||
HTMLElementTypeId::HTMLInputElement))) ||
|
||||
node.type_id() == Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
|
||||
HTMLElementTypeId::HTMLTextAreaElement))) {
|
||||
HTMLElementTypeId::HTMLTextAreaElement)));
|
||||
if node.get_pseudo_element_type() != PseudoElementType::Normal ||
|
||||
node_is_input_or_text_area {
|
||||
// A TextArea's text contents are displayed through the input text
|
||||
// box, so don't construct them.
|
||||
if node.type_id() == Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
|
||||
|
@ -687,9 +689,12 @@ impl<'a> FlowConstructor<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
self.create_fragments_for_node_text_content(&mut initial_fragments,
|
||||
node,
|
||||
&*node.style());
|
||||
let mut style = node.style().clone();
|
||||
if node_is_input_or_text_area {
|
||||
properties::modify_style_for_input_text(&mut style);
|
||||
}
|
||||
|
||||
self.create_fragments_for_node_text_content(&mut initial_fragments, node, &style)
|
||||
}
|
||||
|
||||
self.build_flow_for_block_starting_with_fragments(flow, node, initial_fragments)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue