Remove image_data from tests.

Store multiple indexable text items for a node.
This commit is contained in:
Pyfisch 2018-02-12 22:57:02 +01:00
parent 0d0f2abf12
commit bc87b41db3
2 changed files with 11 additions and 16 deletions

View file

@ -3012,28 +3012,24 @@ pub struct IndexableTextItem {
#[derive(Default)] #[derive(Default)]
pub struct IndexableText { pub struct IndexableText {
inner: FnvHashMap<OpaqueNode, IndexableTextItem>, inner: FnvHashMap<OpaqueNode, Vec<IndexableTextItem>>,
} }
impl IndexableText { impl IndexableText {
fn insert(&mut self, node: OpaqueNode, item: IndexableTextItem) { fn insert(&mut self, node: OpaqueNode, item: IndexableTextItem) {
// Guard against duplicate nodes. if let Some(items) = self.inner.get_mut(&node) {
if self.inner.insert(node, item).is_some() { items.push(item);
debug!( return;
"TODO(#20020): Text indexing for {:?} is broken because of multiple text runs.", }
node self.inner.insert(node, vec![item]);
);
};
} }
// Returns the text index within a node for the point of interest. // Returns the text index within a node for the point of interest.
pub fn text_index(&self, node: OpaqueNode, point_in_item: Point2D<Au>) -> Option<usize> { pub fn text_index(&self, node: OpaqueNode, point_in_item: Point2D<Au>) -> Option<usize> {
if let Some(item) = self.inner.get(&node) { let item = self.inner.get(&node)?;
let point = point_in_item + item.origin.to_vector(); // TODO(#20020): access all elements
let offset = point - item.baseline_origin; let point = point_in_item + item[0].origin.to_vector();
Some(item.text_run.range_index_of_advance(&item.range, offset.x)) let offset = point - item[0].baseline_origin;
} else { Some(item[0].text_run.range_index_of_advance(&item[0].range, offset.x))
None
}
} }
} }

View file

@ -126,7 +126,6 @@ fn test_first_contentful_paint_setter() {
format: PixelFormat::RGB8, format: PixelFormat::RGB8,
key: None, key: None,
}, },
image_data: None,
stretch_size: LayoutSize::zero(), stretch_size: LayoutSize::zero(),
tile_spacing: LayoutSize::zero(), tile_spacing: LayoutSize::zero(),
image_rendering: ImageRendering::Auto, image_rendering: ImageRendering::Auto,