Fine(isize, usize), // line #n of this item is just off bottom of screen
}
+impl FilePosition {
+ fn item(&self) -> isize {
+ match self {
+ FilePosition::Coarse(item) => *item,
+ FilePosition::Fine(item, _) => *item,
+ }
+ }
+}
+
trait FeedType {
type Item: TextFragment + Sized;
// Can't extend this any further into the past
// FIXME: this is not tested yet
self.contents.extender = None;
+ if self.pos.item() <= self.contents.origin {
+ self.coarsen_pos();
+ if self.pos.item() <
+ self.contents.first_index()
+ {
+ self.pos = FilePosition::Coarse(
+ self.contents.first_index());
+ }
+ }
}
self.contents.update_items(client);
},
Err(e) => LogicalAction::Error(e),
};
+ self.ensure_enough_rendered();
action
} else {
self.goto_top();