compute_viewport_bounds = function() local xmin, ymin, xmax, ymax for i,node in ipairs(Surface) do if node.type == 'text' or node.type == 'rows' or node.type == 'cols' then if xmin == nil or xmin > node.x then xmin = node.x end if xmax == nil or xmax < node.x+node.w then xmax = node.x+node.w end if ymin == nil or ymin > node.y then ymin = node.y end if ymax == nil or ymax < node.y + node.h then ymax = node.y+node.w end end end xmin, ymin = xmin-50, ymin-50 Viewport_bounds.xmin, Viewport_bounds.xmax, Viewport_bounds.ymin, Viewport_bounds.ymax = xmin,xmax, ymin, ymax end