diff options
-rw-r--r-- | src/platformsupport/eglconvenience/qeglconvenience.cpp | 6 | ||||
-rw-r--r-- | src/platformsupport/eglconvenience/qeglconvenience_p.h | 2 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 2 |
3 files changed, 6 insertions, 4 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)); diff --git a/src/platformsupport/eglconvenience/qeglconvenience_p.h b/src/platformsupport/eglconvenience/qeglconvenience_p.h index d4ac669906..8616275e53 100644 --- a/src/platformsupport/eglconvenience/qeglconvenience_p.h +++ b/src/platformsupport/eglconvenience/qeglconvenience_p.h @@ -57,7 +57,7 @@ bool q_hasEglExtension(EGLDisplay display,const char* extensionName); void q_printEglConfig(EGLDisplay display, EGLConfig config); #ifdef Q_OS_UNIX -QSizeF q_physicalScreenSizeFromFb(int framebufferDevice); +QSizeF q_physicalScreenSizeFromFb(int framebufferDevice, const QSize &screenSize = QSize()); QSize q_screenSizeFromFb(int framebufferDevice); int q_screenDepthFromFb(int framebufferDevice); #endif diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp index b81d260ecb..dbfd8d99dc 100644 --- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp +++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp @@ -100,7 +100,7 @@ EGLNativeDisplayType QEglFSHooks::platformDisplay() const QSizeF QEglFSHooks::physicalScreenSize() const { - return q_physicalScreenSizeFromFb(framebuffer); + return q_physicalScreenSizeFromFb(framebuffer, screenSize()); } QSize QEglFSHooks::screenSize() const |