浏览代码

Fix custom scale sometimes not applied to the project editor window size.

Pāvels Nadtočajevs 4 月之前
父节点
当前提交
a6f526938d
共有 1 个文件被更改,包括 11 次插入9 次删除
  1. 11 9
      main/main.cpp

+ 11 - 9
main/main.cpp

@@ -248,8 +248,10 @@ static int64_t init_embed_parent_window_id = 0;
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 static bool init_display_scale_found = false;
 static bool init_display_scale_found = false;
 static int init_display_scale = 0;
 static int init_display_scale = 0;
+static bool init_custom_scale_found = false;
 static float init_custom_scale = 1.0;
 static float init_custom_scale = 1.0;
 static bool init_expand_to_title = false;
 static bool init_expand_to_title = false;
+static bool init_expand_to_title_found = false;
 #endif
 #endif
 static bool use_custom_res = true;
 static bool use_custom_res = true;
 static bool force_res = false;
 static bool force_res = false;
@@ -2960,7 +2962,7 @@ Error Main::setup2(bool p_show_boot_logo) {
 						prefer_wayland_found = true;
 						prefer_wayland_found = true;
 					}
 					}
 
 
-					while (!screen_found || !prefer_wayland_found || !tablet_found || !ac_found) {
+					while (!screen_found || !init_expand_to_title_found || !init_display_scale_found || !init_custom_scale_found || !prefer_wayland_found || !tablet_found || !ac_found) {
 						assign = Variant();
 						assign = Variant();
 						next_tag.fields.clear();
 						next_tag.fields.clear();
 						next_tag.name = String();
 						next_tag.name = String();
@@ -2979,22 +2981,22 @@ Error Main::setup2(bool p_show_boot_logo) {
 									restore_editor_window_layout = value.operator int() == EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO;
 									restore_editor_window_layout = value.operator int() == EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO;
 								}
 								}
 							}
 							}
-							if (assign == "interface/accessibility/accessibility_support") {
+							if (!ac_found && assign == "interface/accessibility/accessibility_support") {
 								accessibility_mode_editor = value;
 								accessibility_mode_editor = value;
 								ac_found = true;
 								ac_found = true;
-							} else if (assign == "interface/editor/expand_to_title") {
+							} else if (!init_expand_to_title_found && assign == "interface/editor/expand_to_title") {
 								init_expand_to_title = value;
 								init_expand_to_title = value;
-							} else if (assign == "interface/editor/display_scale") {
+								init_expand_to_title_found = true;
+							} else if (!init_display_scale_found && assign == "interface/editor/display_scale") {
 								init_display_scale = value;
 								init_display_scale = value;
 								init_display_scale_found = true;
 								init_display_scale_found = true;
-							} else if (assign == "interface/editor/custom_display_scale") {
+							} else if (!init_custom_scale_found && assign == "interface/editor/custom_display_scale") {
 								init_custom_scale = value;
 								init_custom_scale = value;
+								init_custom_scale_found = true;
 							} else if (!prefer_wayland_found && assign == "run/platforms/linuxbsd/prefer_wayland") {
 							} else if (!prefer_wayland_found && assign == "run/platforms/linuxbsd/prefer_wayland") {
 								prefer_wayland = value;
 								prefer_wayland = value;
 								prefer_wayland_found = true;
 								prefer_wayland_found = true;
-							}
-
-							if (!tablet_found && assign == "interface/editor/tablet_driver") {
+							} else if (!tablet_found && assign == "interface/editor/tablet_driver") {
 								tablet_driver_editor = value;
 								tablet_driver_editor = value;
 								tablet_found = true;
 								tablet_found = true;
 							}
 							}
@@ -3224,7 +3226,7 @@ Error Main::setup2(bool p_show_boot_logo) {
 		}
 		}
 
 
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
-		if (project_manager && init_display_scale_found) {
+		if (project_manager) {
 			float ui_scale = init_custom_scale;
 			float ui_scale = init_custom_scale;
 			switch (init_display_scale) {
 			switch (init_display_scale) {
 				case 0:
 				case 0: