Просмотр исходного кода

UI: Only apply new scaling behavior on newer installs

The new scaling behavior affects defaults, so only apply it to new
installs of 26.2 or greater, while maintaining the previous behavior if
the user is upgrading from an older version.
jp9000 5 лет назад
Родитель
Сommit
4e5f20dcbe
2 измененных файлов с 22 добавлено и 4 удалено
  1. 12 0
      UI/obs-app.cpp
  2. 10 4
      UI/window-basic-main.cpp

+ 12 - 0
UI/obs-app.cpp

@@ -777,6 +777,18 @@ bool OBSApp::InitGlobalConfig()
 	}
 #undef PRE_24_1_DEFS
 
+#define PRE_26_2_DEFS "Pre26.2Defaults"
+	if (!config_has_user_value(globalConfig, "General", PRE_26_2_DEFS)) {
+		bool useOldDefaults = lastVersion &&
+				      lastVersion <
+					      MAKE_SEMANTIC_VERSION(26, 2, 0);
+
+		config_set_bool(globalConfig, "General", PRE_26_2_DEFS,
+				useOldDefaults);
+		changed = true;
+	}
+#undef PRE_26_2_DEFS
+
 	if (config_has_user_value(globalConfig, "BasicWindow",
 				  "MultiviewLayout")) {
 		const char *layout = config_get_string(

+ 10 - 4
UI/window-basic-main.cpp

@@ -1218,13 +1218,19 @@ bool OBSBasic::InitBasicConfigDefaults()
 	uint32_t cx = primaryScreen->size().width();
 	uint32_t cy = primaryScreen->size().height();
 
+	bool oldScaleBehavior = config_get_bool(App()->GlobalConfig(),
+						"General", "Pre26.2Defaults");
+
+	/* after version 26.2, apply scaling to cx/cy */
+	if (!oldScaleBehavior) {
 #ifdef SUPPORTS_FRACTIONAL_SCALING
-	cx *= devicePixelRatioF();
-	cy *= devicePixelRatioF();
+		cx *= devicePixelRatioF();
+		cy *= devicePixelRatioF();
 #elif
-	cx *= devicePixelRatio();
-	cy *= devicePixelRatio();
+		cx *= devicePixelRatio();
+		cy *= devicePixelRatio();
 #endif
+	}
 
 	bool oldResolutionDefaults = config_get_bool(
 		App()->GlobalConfig(), "General", "Pre19Defaults");