mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Don't redraw backgrounds that we've already drawn
This commit is contained in:
parent
db6ec58e6b
commit
5cd15eeb54
1 changed files with 11 additions and 4 deletions
|
@ -20,8 +20,7 @@ use gfx_traits::print_tree::PrintTree;
|
||||||
use layout_debug;
|
use layout_debug;
|
||||||
use model::{IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto};
|
use model::{IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto};
|
||||||
use servo_arc::Arc;
|
use servo_arc::Arc;
|
||||||
use std::cmp;
|
use std::{cmp, fmt, ptr};
|
||||||
use std::fmt;
|
|
||||||
use style::computed_values::{border_collapse, border_spacing, table_layout};
|
use style::computed_values::{border_collapse, border_spacing, table_layout};
|
||||||
use style::context::SharedStyleContext;
|
use style::context::SharedStyleContext;
|
||||||
use style::logical_geometry::LogicalSize;
|
use style::logical_geometry::LogicalSize;
|
||||||
|
@ -1074,12 +1073,20 @@ impl<'table> TableCellStyleInfo<'table> {
|
||||||
};
|
};
|
||||||
{
|
{
|
||||||
let cell_flow = &self.cell.block_flow;
|
let cell_flow = &self.cell.block_flow;
|
||||||
|
let mut bg_ptr = ptr::null();
|
||||||
|
|
||||||
// XXXManishearth the color should be resolved relative to the style itself
|
// XXXManishearth the color should be resolved relative to the style itself
|
||||||
// which we don't have here
|
// which we don't have here
|
||||||
let build_dl = |bg, state: &mut &mut DisplayListBuildState| {
|
let mut build_dl = |bg, state: &mut &mut DisplayListBuildState| {
|
||||||
|
// Don't redraw backgrounds that we've already drawn
|
||||||
|
if bg_ptr == bg as *const _ {
|
||||||
|
return;
|
||||||
|
}
|
||||||
cell_flow.build_display_list_for_background_if_applicable_with_background(
|
cell_flow.build_display_list_for_background_if_applicable_with_background(
|
||||||
state, bg, table_style.resolve_color(bg.background_color)
|
state, bg, table_style.resolve_color(bg.background_color)
|
||||||
)
|
);
|
||||||
|
|
||||||
|
bg_ptr = bg as *const _;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue