fix: incorrect scale factor has been set in qt application which load dxcb platform plugin
issue: https://github.com/linuxdeepin/developer-center/issues/7431 Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
parent
d54087bbc2
commit
c9ca203390
@ -53,7 +53,8 @@ void ApplicationService::appendExtraEnvironments(QVariantMap &runtimeOptions) co
|
|||||||
{
|
{
|
||||||
QString oldEnv;
|
QString oldEnv;
|
||||||
// scale factor
|
// scale factor
|
||||||
static QStringList scaleEnvs{"DEEPIN_WINE_SCALE=%1;", "GDK_DPI_SCALE=%1;", "QT_SCALE_FACTOR=%1;", "GDK_SCALE=%1;"};
|
// NOTE: Use QT_SCREEN_SCALE_FACTOR in multi-monitor situations, as this feature may be added in the future
|
||||||
|
static QStringList scaleEnvs{"DEEPIN_WINE_SCALE=%1;", "GDK_DPI_SCALE=%1;", "QT_SCREEN_SCALE_FACTOR=%1;", "GDK_SCALE=%1;"};
|
||||||
auto factor = scaleFactor();
|
auto factor = scaleFactor();
|
||||||
if (auto it = runtimeOptions.find("env"); it != runtimeOptions.cend()) {
|
if (auto it = runtimeOptions.find("env"); it != runtimeOptions.cend()) {
|
||||||
oldEnv = it->value<QString>();
|
oldEnv = it->value<QString>();
|
||||||
@ -66,6 +67,9 @@ void ApplicationService::appendExtraEnvironments(QVariantMap &runtimeOptions) co
|
|||||||
// GIO
|
// GIO
|
||||||
oldEnv.append(QString{"GIO_LAUNCHED_DESKTOP_FILE=%1;"}.arg(m_desktopSource.sourcePath()));
|
oldEnv.append(QString{"GIO_LAUNCHED_DESKTOP_FILE=%1;"}.arg(m_desktopSource.sourcePath()));
|
||||||
|
|
||||||
|
// set for dxcb platform plugin, which should use scale factor directly instead of processing double times.
|
||||||
|
oldEnv.append(QString{"D_DXCB_FORCE_OVERRIDE_HIDPI=1"});
|
||||||
|
|
||||||
runtimeOptions.insert("env", oldEnv);
|
runtimeOptions.insert("env", oldEnv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user