parent
af5a9fabc6
commit
fbc6e930a7
1 changed files with 7 additions and 3 deletions
|
@ -202,13 +202,14 @@ impl ListState {
|
||||||
///
|
///
|
||||||
/// Note that this will cause scroll events to be dropped until the next paint.
|
/// Note that this will cause scroll events to be dropped until the next paint.
|
||||||
pub fn reset(&self, element_count: usize) {
|
pub fn reset(&self, element_count: usize) {
|
||||||
{
|
let old_count = {
|
||||||
let state = &mut *self.0.borrow_mut();
|
let state = &mut *self.0.borrow_mut();
|
||||||
state.reset = true;
|
state.reset = true;
|
||||||
state.logical_scroll_top = None;
|
state.logical_scroll_top = None;
|
||||||
}
|
state.items.summary().count
|
||||||
|
};
|
||||||
|
|
||||||
self.splice(0..element_count, element_count);
|
self.splice(0..old_count, element_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The number of items in this list.
|
/// The number of items in this list.
|
||||||
|
@ -613,6 +614,9 @@ impl StateInner {
|
||||||
let mut layout_response =
|
let mut layout_response =
|
||||||
self.layout_items(Some(bounds.size.width), bounds.size.height, &padding, cx);
|
self.layout_items(Some(bounds.size.width), bounds.size.height, &padding, cx);
|
||||||
|
|
||||||
|
// Avoid honoring autoscroll requests from elements other than our children.
|
||||||
|
cx.take_autoscroll();
|
||||||
|
|
||||||
// Only paint the visible items, if there is actually any space for them (taking padding into account)
|
// Only paint the visible items, if there is actually any space for them (taking padding into account)
|
||||||
if bounds.size.height > padding.top + padding.bottom {
|
if bounds.size.height > padding.top + padding.bottom {
|
||||||
let mut item_origin = bounds.origin + Point::new(px(0.), padding.top);
|
let mut item_origin = bounds.origin + Point::new(px(0.), padding.top);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue