Godot Version
< 4.3 dev 5>
Question
When changing resolution taskbar goes out of screen. When using move_to_center my taskbar getting out of screen. If i decrease y for 40 pixel (~size of windows hotbar) it works, but this is not solution i needed.
var Resolutions: Dictionary = {
"3840х2160": Vector2i(3840,2160),
"2560х1440": Vector2i(2560,1440),
"1920x1080": Vector2i(1920,1080),
"1366x768": Vector2i(1366,768),
"1536x864": Vector2i(1536,864),
"1280x720": Vector2i(1280,720),
"1440x900": Vector2i(1440,900),
"1600x900": Vector2i(1600,900),
"1024x600": Vector2i(1024,600),
"800x600": Vector2i(800,600),}
const Window_Mode_Array : Array[String] = [
"Window Mode",
"FullScreen",
"Borderless Window",
"Borderless FullScreen"
]
func _ready() ->
void:
resolution_option_button.item_selected.connect(on_resolution_selected)
full_screen_options.item_selected.connect(on_window_mode_selected)
add_resolution_item()
func add_resolution_item() -> void:
var Current_resolution = get_window().get_size()
var ID = 0
for resolution_size_text in Resolutions:
resolution_option_button.add_item(resolution_size_text, ID)
if Resolutions[resolution_size_text] == Current_resolution:
resolution_option_button.select(ID)
ID += 1
for window_mode in Window_Mode_Array:
full_screen_options.add_item(window_mode)
func on_resolution_selected(index: int) -> void:
DisplayServer.window_set_size(Resolutions.values()[index])
centre_window()
func centre_window():
get_window().move_to_center()
func on_window_mode_selected(index: int) -> void:
match index:
0: #window
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, false)
1: #fullscreen
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, false)
2: #borderless window
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
3: #borderless fullscreen
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)