~akkartik/luaML.love

b32a60548fc01e461f6c5562dd9cec2d78252aff — Kartik K. Agaram 2 months ago 22d12f6 + c0c2a9a
Merge template-live-editor

Currently A() leaks fonts, but B() does not.
3 files changed, 7 insertions(+), 5 deletions(-)

M 0019-B
M 0030-update_editor_box
M edit.lua
M 0019-B => 0019-B +3 -1
@@ 1,5 1,6 @@
B = function()
	-- recompute various aspects based on the current viewport settings
	local font = nil
	for _,obj in ipairs(Surface) do
		if obj.type == 'line' then
			obj.zdata = {}


@@ 16,7 17,8 @@ B = function()
			obj.zdata = love.math.newBezierCurve(zdata):render()
		elseif obj.type == 'text' then
			if obj.w then
				update_editor_box(obj)
				update_editor_box(obj, font)
				if obj.editor and obj.editor.font then font = obj.editor.font end
			else
				obj.text = love.graphics.newText(love.graphics.getFont(), obj.data)
			end

M 0030-update_editor_box => 0030-update_editor_box +2 -2
@@ 1,6 1,6 @@
update_editor_box = function(node)
update_editor_box = function(node, font)
	if node.editor == nil then return end
	edit.update_font_settings(node.editor, scale(20))
	edit.update_font_settings(node.editor, scale(20), font)
	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

M edit.lua => edit.lua +2 -2
@@ 379,9 379,9 @@ end
function edit.key_release(State, key, scancode)
end

function edit.update_font_settings(State, font_height)
function edit.update_font_settings(State, font_height, font)
  State.font_height = font_height
  State.font = love.graphics.newFont(State.font_height)
  State.font = font or love.graphics.newFont(State.font_height)
  State.line_height = math.floor(font_height*1.3)
end