From a26f47756be60348ec1fff1402163356e9f6b059 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 11 Sep 2013 18:53:02 +0200 Subject: eglfs: Handle desktop and multiple windows gracefully When trying to create more than one window, stop with a helpful error message since this is not yet supported. Also, return a fake WId for desktop windows. Change-Id: I9859b62b1d4f6b6142982d2e5a90afc1fc3c6a28 Reviewed-by: Gunnar Sletta --- src/plugins/platforms/eglfs/qeglfswindow.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp index bf6e375ac0..73f52f0796 100644 --- a/src/plugins/platforms/eglfs/qeglfswindow.cpp +++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp @@ -87,8 +87,10 @@ void QEglFSWindow::create() return; } - if (!supportsMultipleWindows() && screen()->primarySurface()) + if (!supportsMultipleWindows() && screen()->primarySurface()) { + qFatal("EGLFS: Multiple windows are not supported"); return; + } EGLDisplay display = (static_cast(window()->screen()->handle()))->display(); QSurfaceFormat platformFormat = QEglFSHooks::hooks()->surfaceFormatFor(window()->requestedFormat()); @@ -161,6 +163,10 @@ void QEglFSWindow::setWindowState(Qt::WindowState) WId QEglFSWindow::winId() const { + // Return a fake WId for desktop windows. + if (window()->type() == Qt::Desktop) + return std::numeric_limits::max(); + return WId(m_window); } -- cgit v1.2.3