From 13b156b6fc0278636b69822d2dba3ef737a57f00 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Tue, 19 Dec 2023 11:06:02 +0100 Subject: [PATCH] info: respect newlines --- tile.lua | 59 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/tile.lua b/tile.lua index 1cc8a4c..d9dce56 100644 --- a/tile.lua +++ b/tile.lua @@ -476,24 +476,26 @@ local function view_info(starts, ends, config, x1, y1, x2, y2) info_text = text_b end - local lines = wrap( - info_text, - font_text, font_size, a.width - ) - local y = 0 - for idx = 1, #lines do - local x = 0 - local w = font_text:width(lines[idx], font_size) + for line in string.gmatch(info_text.."\n", "([^\n]*)\n") do + local lines = wrap( + line, + font_text, font_size, a.width + ) - if align == "right" then - x = a.width - w - elseif align == "center" then - x = (a.width - w) / 2 + for idx = 1, #lines do + local x = 0 + local w = font_text:width(lines[idx], font_size) + + if align == "right" then + x = a.width - w + elseif align == "center" then + x = (a.width - w) / 2 + end + + text(font_text, x, y, lines[idx], font_size, rgba(default_color,.8)) + y = y + font_size end - - text(font_text, x, y, lines[idx], font_size, rgba(default_color,.8)) - y = y + font_size end for now in api.frame_between(starts, ends) do @@ -501,18 +503,25 @@ local function view_info(starts, ends, config, x1, y1, x2, y2) a.draw(now, x1, y1, x2, y2) else local y = 0 - for idx = 1, #lines do - local x = 0 - local w = font_text:width(lines[idx], font_size) + for line in string.gmatch(info_text.."\n", "([^\n]*)\n") do + local lines = wrap( + line, + font_text, font_size, a.width + ) - if align == "right" then - x = a.width - w - elseif align == "center" then - x = (a.width - w) / 2 + for idx = 1, #lines do + local x = 0 + local w = font_text:width(lines[idx], font_size) + + if align == "right" then + x = a.width - w + elseif align == "center" then + x = (a.width - w) / 2 + end + + font_text:write(x, y, lines[idx], font_size, r,g,b,1) + y = y + font_size end - - font_text:write(x, y, lines[idx], font_size, r,g,b,1) - y = y + font_size end end end