A lightweight programming environment for desktop and mobile devices
on.draw = function()
	Global_state.button_handlers = {}
	Global_state.slider_handlers = {}
	-- modal dialog
	if Show_file_dialog then
		draw_file_dialog()
		return
	end
	Overflow_button = nil
	love.graphics.setBackgroundColor(Background_color.r, Background_color.g, Background_color.b)
	draw_canvas()
	App.color(Foreground_color)
	if car.draw then call_protected(car.draw) end  -- off canvas
	love.graphics.setFont(Font)
	App.color(Normal_color)
	love.graphics.setLineWidth(1)
	if Show_code then
		draw_output_border()
		if #Current_pane.output_editor_state.lines ~= #Current_pane.output_editor_state.line_cache then
			Text.redraw_all(Current_pane.output_editor_state)
		end
		edit.draw(Current_pane.output_editor_state, Foreground_color, --[[hide cursor]] true)
		draw_scrollbar(Current_pane.output_editor_state)
		-- draw editor after menu and output scrollbar so search dialog over
		draw_editor_border()
		edit.draw(Current_pane.editor_state, --[[implicitly use Foreground_color]] nil, --[[hide_cursor]] nil, --[[show_line_numbers]] true)
		draw_scrollbar(Current_pane.editor_state)
	end
	draw_menu()
	draw_next_frames_of_animations()
	if Window_in_focus and Mouse_on_window then
		draw_button_tooltips(Global_state)
	end
end