Browse Source

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 4 years ago
parent
commit
4e5f20dcbe
2 changed files with 22 additions and 4 deletions
  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");