Complete support for no-fullscreen parameter

Change the code so that it doesn't force application windows to full
screen when the no-fullscreen parameter is used in the QT_QPA_PLATFORM
environment variable.

Task-number: QTBUG-37456
Change-Id: If9612cc2ca69f829d45e7fd4b83338c3a41cf986
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
This commit is contained in:
James McDonnell 2014-03-12 11:44:21 -04:00 committed by The Qt Project
parent 530f985651
commit ff7f3aba39
3 changed files with 11 additions and 5 deletions

View File

@ -70,8 +70,7 @@ QQnxEglWindow::QQnxEglWindow(QWindow *window, screen_context_t context, bool nee
if (result != 0)
qFatal("QQnxEglWindow: failed to set window alpha usage, errno=%d", errno);
m_requestedBufferSize = screen()->rootWindow() == this ?
screen()->geometry().size() : window->geometry().size();
m_requestedBufferSize = shouldMakeFullScreen() ? screen()->geometry().size() : window->geometry().size();
}
QQnxEglWindow::~QQnxEglWindow()
@ -156,7 +155,7 @@ EGLSurface QQnxEglWindow::getSurface()
void QQnxEglWindow::setGeometry(const QRect &rect)
{
//If this is the root window, it has to be shown fullscreen
const QRect &newGeometry = screen()->rootWindow() == this ? screen()->geometry() : rect;
const QRect &newGeometry = shouldMakeFullScreen() ? screen()->geometry() : rect;
//We need to request that the GL context updates
// the EGLsurface on which it is rendering.

View File

@ -242,7 +242,7 @@ QQnxWindow::~QQnxWindow()
void QQnxWindow::setGeometry(const QRect &rect)
{
QRect newGeometry = rect;
if (screen()->rootWindow() == this) //If this is the root window, it has to be shown fullscreen
if (shouldMakeFullScreen())
newGeometry = screen()->geometry();
setGeometryHelper(newGeometry);
@ -714,7 +714,7 @@ void QQnxWindow::initWindow()
if (window()->parent() && window()->parent()->handle())
setParent(window()->parent()->handle());
if (screen()->rootWindow() == this) {
if (shouldMakeFullScreen()) {
setGeometryHelper(screen()->geometry());
QWindowSystemInterface::handleGeometryChange(window(), screen()->geometry());
} else {
@ -817,4 +817,9 @@ void QQnxWindow::windowPosted()
qqnxLgmonFramePosted(m_cover); // for performance measurements
}
bool QQnxWindow::shouldMakeFullScreen() const
{
return ((screen()->rootWindow() == this) && (QQnxIntegration::options() & QQnxIntegration::FullScreenApplication));
}
QT_END_NAMESPACE

View File

@ -112,6 +112,8 @@ public:
QByteArray groupName() const { return m_windowGroupName; }
void joinWindowGroup(const QByteArray &groupName);
bool shouldMakeFullScreen() const;
protected:
virtual int pixelFormat() const = 0;
virtual void resetBuffers() = 0;