From: Simon Tatham Date: Fri, 8 Dec 2023 12:50:31 +0000 (+0000) Subject: Properly indicate whether we can extend backwards. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=06dcb20d03ea7353a0254d60630ce2fc9204495f;p=mastodonochrome.git Properly indicate whether we can extend backwards. --- diff --git a/client.py b/client.py index 2a58bda..6b171a4 100644 --- a/client.py +++ b/client.py @@ -187,6 +187,12 @@ class Feed: """ def __init__(self, client): self.client = client + def can_extend(self): + return False + def extend_past(self): + return False + def extend_future(self): + return False class IncrementalServerFeed(Feed): """A Feed that fetches something from the server via get_incremental.""" @@ -214,6 +220,8 @@ class IncrementalServerFeed(Feed): def __getitem__(self, n): return self.data[n + self.origin] + def can_extend(self): + return True def extend_past(self): if not self.started: return None @@ -267,11 +275,6 @@ class ThreadFeed(Feed): def __getitem__(self, n): return self.data[n] - def extend_past(self): - return False - def extend_future(self): - return False - class EgoFeed(IncrementalServerFeed): def __init__(self, client): super().__init__(client, "notifications", { diff --git a/cursesclient.py b/cursesclient.py index 946b618..5e7455f 100644 --- a/cursesclient.py +++ b/cursesclient.py @@ -484,7 +484,7 @@ class ObjectFile(File): self.header = text.FileHeader(title) self.constructor = constructor - self.history_closed = False + self.history_closed = not self.feed.can_extend() self.minpos = self.feed.min_index() self.maxpos = self.feed.max_index() self.statuses = {i: self.constructor(self.feed[i], cc) @@ -719,11 +719,12 @@ class ObjectFile(File): def up_screen(self): success = self.move_by(-max(1, self.cc.scr_h - 3)) - if not success: + if not success and not self.history_closed: if not self.primed_to_extend: self.primed_to_extend = True else: - self.feed.extend_past() + if self.feed.extend_past() is False: # None does not count + self.history_closed = True self.primed_to_extend = False def unprime(self): self.primed_to_extend = False