extends Node @onready var fullscreen: bool = ProjectSettings.get_setting("display/window/size/mode") == Window.MODE_EXCLUSIVE_FULLSCREEN | Window.MODE_FULLSCREEN func _process(_delta: float) -> void: if Input.is_action_just_pressed("fullscreen"): fullscreen = !fullscreen toggle_fullscreen() func _notification(what: int) -> void: if what == Window.NOTIFICATION_APPLICATION_FOCUS_OUT: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE func _unhandled_input(event: InputEvent) -> void: if event is InputEventMouse: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE elif !event.is_action("escape"): Input.mouse_mode = Input.MOUSE_MODE_HIDDEN func toggle_fullscreen() -> void: if fullscreen: if OS.get_name() == "Windows": DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)