From f5b8244d13d2117fc6da157233feb929189ae27f Mon Sep 17 00:00:00 2001
From: Sebastian Krzyszkowiak <dos@dosowisko.net>
Date: Sat, 25 Nov 2023 13:39:19 +0100
Subject: [PATCH] fil3s: Draw each line of text in Reader separately

---
 python_payload/apps/fil3s/reader.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/python_payload/apps/fil3s/reader.py b/python_payload/apps/fil3s/reader.py
index 1949722b5c..39efad27d8 100644
--- a/python_payload/apps/fil3s/reader.py
+++ b/python_payload/apps/fil3s/reader.py
@@ -174,8 +174,16 @@ class Reader(ActionView):
             ctx.font_size = 32
         else:
             ctx.font_size = 16
-        ctx.move_to(self.viewport_offset[0], self.viewport_offset[1])
-        ctx.text(f"{self.content}")
+
+        line_height = ctx.font_size
+
+        for i, line in enumerate(self.content):
+            x, y = self.viewport_offset[0], self.viewport_offset[1] + i * line_height
+            if y > 120 + line_height or y < -120 - line_height:
+                continue
+            ctx.move_to(x, y)
+            ctx.text(line)
+
         ctx.restore()
 
     def _draw_media(self, ctx: Context) -> None:
@@ -195,7 +203,7 @@ class Reader(ActionView):
     def _read_file(self) -> None:
         try:
             with open(self.path, "r", encoding="utf-8") as f:
-                self.content = f.read()
+                self.content = f.readlines()
         except:
             self.has_error = True
 
-- 
GitLab