summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/eglconvenience/qeglconvenience.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/eglconvenience/qeglconvenience.cpp')
-rw-r--r--src/platformsupport/eglconvenience/qeglconvenience.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp
index f8ccff9b56..f51e471560 100644
--- a/src/platformsupport/eglconvenience/qeglconvenience.cpp
+++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp
@@ -435,7 +435,7 @@ void q_printEglConfig(EGLDisplay display, EGLConfig config)
#if (defined(Q_OS_UNIX) && !defined(Q_OS_QNX))
-QSizeF q_physicalScreenSizeFromFb(int framebufferDevice)
+QSizeF q_physicalScreenSizeFromFb(int framebufferDevice, const QSize &screenSize)
{
const int defaultPhysicalDpi = 100;
static QSizeF size;
@@ -465,7 +465,9 @@ QSizeF q_physicalScreenSizeFromFb(int framebufferDevice)
screenResolution = QSize(vinfo.xres, vinfo.yres);
}
} else {
- screenResolution = q_screenSizeFromFb(framebufferDevice);
+ // Use the provided screen size, when available, since some platforms may have their own
+ // specific way to query it. Otherwise try querying it from the framebuffer.
+ screenResolution = screenSize.isEmpty() ? q_screenSizeFromFb(framebufferDevice) : screenSize;
}
size.setWidth(w <= 0 ? screenResolution.width() * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(w));