From 06dcb20d03ea7353a0254d60630ce2fc9204495f Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Fri, 8 Dec 2023 12:50:31 +0000 Subject: [PATCH] Properly indicate whether we can extend backwards. --- client.py | 13 ++++++++----- cursesclient.py | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) 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 -- 2.30.2