Wrong position after changing resolution in Fullscreen&ExclusiveFullscreen

Godot Version

4.3

Question

Hello :v:
After changing the resolution ingame, the content appears in the top-left corner.
This only happens in Fullscreen and ExclusiceFullscreen Mode.
In Window mode, everything just works fine fine.
Here is the Script:

const set_resolution_list: Array = [
	{ "name": "640 x 360 / 16:9", "resolution": Vector2i(640, 360) },
	{ "name": "640 x 400 / 16:10", "resolution": Vector2i(640, 400) },
	{ "name": "768 x 432 / 16:9", "resolution": Vector2i(768, 432) },
	{ "name": "800 x 600 / 4:3", "resolution": Vector2i(800, 600) }
]

func _ready() -> void:
	$Menus/HBoxContainer/SubMenus/SizeMenu/SizeLayout/ResolutionPopUp.connect("item_selected", Callable(self, "_on_Resolution_item_selected"))

func _on_Resolution_item_selected(index: int) -> void:
	var current_screen_index = DisplayServer.window_get_current_screen()
	var desktop_resolution = DisplayServer.screen_get_size(current_screen_index)
	var resolution = set_resolution_list[index]["resolution"]
	var sizefactor: int = int(round(desktop_resolution.y) / round(resolution.y))
	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
		get_window().set_size(resolution - Vector2i(2, 2))
		get_window().content_scale_size = resolution - Vector2i(2, 2)
	else:
		get_window().set_size(resolution)
		get_window().content_scale_size = resolution
	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN:
		get_window().size = resolution * sizefactor
	elif DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
		get_window().size = (resolution * sizefactor) - Vector2i(2, 2)
		print((resolution * sizefactor) - Vector2i(2, 2))
	elif DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED:
		get_window().size = resolution * clamp(sizefactor - 1, 1, 12)
	var screen_center = DisplayServer.screen_get_position() + DisplayServer.screen_get_size() / 2
	var window_size = get_window().get_size_with_decorations()
	get_window().set_position(screen_center - window_size / 2)

How can i control the position of my content?
If i use the same settings via Project Settings, everything is perfectly in the middle of the screen…

Thx for help :sweat_smile:

Try set your project settings like this:

This are my regular project settings:


I tried it with “Aspect = Expand” settings, but got the same result.