home · contact · privacy
Minor code re-organization.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 4 Oct 2025 12:09:21 +0000 (14:09 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 4 Oct 2025 12:09:21 +0000 (14:09 +0200)
src/ircplom/tui_base.py

index 46c3992d88bbfadb0b6f4c8a0270c1d2baed6cf1..5d869fb3d14e5248616ed6a7a317264a9d69217b 100644 (file)
@@ -151,23 +151,21 @@ class _HistoryWidget(_ScrollableWidget):
 
     def _draw(self) -> None:
         start_idx_neg = self._wrapped_idx_neg - self._sizes.y + 1
-        end_idx_neg = self._wrapped_idx_neg
-        idx_pos_bookmark = ([idx_pos for idx_pos, t in enumerate(self._wrapped)
+        add_scroll_info = self._wrapped_idx_neg < -1
+        end_idx_neg = self._wrapped_idx_neg if add_scroll_info else None
+        bookmark_idx_pos = ([idx_pos for idx_pos, t in enumerate(self._wrapped)
                              if t[0] == self._bookmark_idx_pos] + [0])[0]
-        wrapped = (self._wrapped[:idx_pos_bookmark]
-                   + [(0, '-' * self._sizes.x)]
-                   + self._wrapped[idx_pos_bookmark:])
+        wrapped = (self._wrapped[:bookmark_idx_pos]
+                   + [(0, '-' * self._sizes.x)]  # bookmark line
+                   + self._wrapped[bookmark_idx_pos:])
         to_write = [t[1] for t in wrapped[start_idx_neg:end_idx_neg]]
-        add_scroll_info = self._wrapped_idx_neg < -1
         if add_scroll_info:
             scroll_info = f'vvv [{(-1) * self._wrapped_idx_neg}] '
             scroll_info += 'v' * (self._sizes.x - len(scroll_info))
             to_write += [scroll_info]
-        else:
-            to_write += [wrapped[self._wrapped_idx_neg][1]]
         for i, line in enumerate(to_write):
             self._write(line, i)
-        hist_idx_pos = self._wrapped[end_idx_neg - int(add_scroll_info)][0]
+        hist_idx_pos = self._wrapped[(end_idx_neg or 0) - 1][0]
         self._last_read_idx_pos = max(self._last_read_idx_pos,
                                       hist_idx_pos or 0)