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.
This commit is contained in:
jp9000 2020-12-29 08:58:30 -08:00
parent 5cdd084c7f
commit 4e5f20dcbe
2 changed files with 22 additions and 4 deletions

View File

@ -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(

View File

@ -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");