bugfix: size text/box when changing zoom

This is a backport from driver.love
This commit is contained in:
Kartik K. Agaram 2023-04-22 22:27:30 -07:00
parent a23e923c8a
commit 0e3f1f7732
2 changed files with 10 additions and 4 deletions

1
0028-A
View File

@ -1,4 +1,5 @@
A = function(preserve_screen_top_of_cursor_node)
love.graphics.setFont(love.graphics.newFont(scale(20))) -- editor objects implicitly depend on current font
-- translate Page to Surface
while #Surface > 3 do table.remove(Surface) end -- HACK
local red = false

View File

@ -1,16 +1,21 @@
update_editor_box = function(node, preserve_screen_top_of_cursor_node)
if node.editor == nil then return end
if node.y > Viewport.y then
-- Compute screen_top1 in viewport coordinates because the editor's font takes scaling into account.
if vy(node.y) > 0 then
if not preserve_screen_top_of_cursor_node or node ~= Cursor_node then
node.editor.screen_top1.line = 1
node.editor.screen_top1.pos = 1
end
node.editor.top = vy(node.y)
else
node.editor.screen_top1, node.editor.top = schema1_of_y(node.editor, Viewport.y - node.y)
node.editor.screen_top1, node.editor.top = schema1_of_y(node.editor, -vy(node.y))
end
if node.editor.font_height ~= scale(20) then
edit.update_font_settings(node.editor, scale(20))
end
node.editor.left = math.floor(vx(node.x))
node.editor.right = math.ceil(vx(node.x+node.w))
node.editor.width = node.editor.right - node.editor.left
edit.update_font_settings(node.editor, scale(20))
Text.redraw_all(node.editor)
end