summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2015-04-14 11:05:22 +0200
committerMorten Johan Sørvig <morten.sorvig@digia.com>2015-04-14 11:05:22 +0200
commit7c77febbde4a7e2ebe73579f06baf018cbd192c3 (patch)
tree2684bf2c24b5ec1147f10ed10f7903f05252c587 /src/gui
parentc0fdcaa92eef9b2f8a584f2610d07fb076b28f95 (diff)
Per window scale factor setting
./highdpi --window-scale-factor --mainwindow Also fix a couple of scaling logic bugs.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qhighdpiscaling.cpp3
-rw-r--r--src/gui/kernel/qwindow.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp
index 8ea1735cd1..f4490dccae 100644
--- a/src/gui/kernel/qhighdpiscaling.cpp
+++ b/src/gui/kernel/qhighdpiscaling.cpp
@@ -98,13 +98,14 @@ static const char *scaleFactorProperty = "_q_scaleFactor";
void QHighDpiScaling::setWindowFactor(QWindow *window, qreal factor)
{
+ m_active = true;
m_perWindowActive = true;
window->setProperty(scaleFactorProperty, QVariant(factor));
}
qreal QHighDpiScaling::factor(const QWindow *window)
{
- if (m_perWindowActive || window == 0)
+ if (!m_perWindowActive || window == 0)
return m_factor;
QVariant windowFactor = window->property(scaleFactorProperty);
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index c7493a8409..eb43c30de5 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -1088,7 +1088,7 @@ qreal QWindow::devicePixelRatio() const
// correct for single-display systems (a very common case).
if (!d->platformWindow)
return qApp->devicePixelRatio();
- return d->platformWindow->devicePixelRatio() * QHighDpiScaling::factor();
+ return d->platformWindow->devicePixelRatio() * QHighDpiScaling::factor(this);
}
/*!