feat(display): enable borderless fullscreen by default, F11/Alt+Enter toggle, and menu button
checkpoint / checkpoint (push) Failing after 6m3s

This commit is contained in:
2026-09-18 00:56:19 +00:00
parent 2b355d0ed8
commit 370395f1b6
5 changed files with 60 additions and 7 deletions
+25
View File
@@ -46,3 +46,28 @@ func clear() -> void:
port = 0
active = false
editing = false
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventKey and event.pressed and not event.echo:
if event.keycode == KEY_F11 or (event.keycode == KEY_ENTER and event.alt_pressed):
toggle_fullscreen()
get_viewport().set_input_as_handled()
func toggle_fullscreen() -> void:
if DisplayServer.get_name() == "headless":
return
var current_mode := DisplayServer.window_get_mode()
if current_mode == DisplayServer.WINDOW_MODE_FULLSCREEN or current_mode == DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
var screen_id := DisplayServer.window_get_current_screen()
var screen_rect := DisplayServer.screen_get_usable_rect(screen_id)
var target_w := mini(1280, int(screen_rect.size.x * 0.9))
var target_h := mini(720, int(screen_rect.size.y * 0.9))
DisplayServer.window_set_size(Vector2i(target_w, target_h))
var pos := screen_rect.position + (screen_rect.size - Vector2i(target_w, target_h)) / 2
DisplayServer.window_set_position(pos)
else:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)