graph drawing tool
on_border = function(sx,sy)
	local corner_radius = 10
	local near = function(a, b)
		return a >= b-corner_radius and a < b+corner_radius
	end
	for _,node in ipairs(Surface) do
		if node.type == 'text' then
			local h = node_height(node)
			if sx >= node.x-10-corner_radius and sx < node.x + node.w+10+corner_radius then
				if near(sy, node.y-10) or near(sy, node.y+h+10) then
					return node
				end
			end
			if sy >= node.y-10-corner_radius and sy < node.y + h+10+corner_radius then
				if near(sx, node.x-10) or near(sx, node.x+node.w+10) then
					return node
				end
			end
		end
	end
end