diff --git a/src/config.gd b/src/config.gd index c11980aa..8cb5e012 100644 --- a/src/config.gd +++ b/src/config.gd @@ -162,6 +162,15 @@ var LAST_WINDOW_RECT := ConfigFileValue.new( set(_v): _readonly() +var LAST_WINDOW_MODE := ConfigFileValue.new( + _cfg_auto_save.as_config_like(), + "app", + "last_window_mode", + Window.MODE_WINDOWED +): + set(_v): _readonly() + + var REMEMBER_WINDOW_SIZE := ConfigFileValue.new( _cfg_auto_save.as_config_like(), "app", diff --git a/src/main/gui/gui_main.gd b/src/main/gui/gui_main.gd index 55f2b729..9b914f8e 100644 --- a/src/main/gui/gui_main.gd +++ b/src/main/gui/gui_main.gd @@ -177,9 +177,14 @@ func _enter_tree() -> void: window.position, window.min_size )) as Rect2i + var mode: Window.Mode = Config.LAST_WINDOW_MODE.ret(Window.MODE_WINDOWED) if DisplayServer.get_screen_from_rect(rect) != -1: - window.size = rect.size - window.position = rect.position + if mode == Window.MODE_MAXIMIZED: + window.mode = Window.MODE_MAXIMIZED + else: + window.mode = Window.MODE_WINDOWED + window.size = rect.size + window.position = rect.position _local_remote_switch_context = LocalRemoteEditorsSwitchContext.new( _local_editors, @@ -215,6 +220,7 @@ func _exit_tree() -> void: callback.call() var window := get_window() Config.LAST_WINDOW_RECT.put(Rect2i(window.position, window.size)) + Config.LAST_WINDOW_MODE.put(window.mode) # TODO type