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:
parent
530f985651
commit
ff7f3aba39
@ -70,8 +70,7 @@ QQnxEglWindow::QQnxEglWindow(QWindow *window, screen_context_t context, bool nee
|
|||||||
if (result != 0)
|
if (result != 0)
|
||||||
qFatal("QQnxEglWindow: failed to set window alpha usage, errno=%d", errno);
|
qFatal("QQnxEglWindow: failed to set window alpha usage, errno=%d", errno);
|
||||||
|
|
||||||
m_requestedBufferSize = screen()->rootWindow() == this ?
|
m_requestedBufferSize = shouldMakeFullScreen() ? screen()->geometry().size() : window->geometry().size();
|
||||||
screen()->geometry().size() : window->geometry().size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QQnxEglWindow::~QQnxEglWindow()
|
QQnxEglWindow::~QQnxEglWindow()
|
||||||
@ -156,7 +155,7 @@ EGLSurface QQnxEglWindow::getSurface()
|
|||||||
void QQnxEglWindow::setGeometry(const QRect &rect)
|
void QQnxEglWindow::setGeometry(const QRect &rect)
|
||||||
{
|
{
|
||||||
//If this is the root window, it has to be shown fullscreen
|
//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
|
//We need to request that the GL context updates
|
||||||
// the EGLsurface on which it is rendering.
|
// the EGLsurface on which it is rendering.
|
||||||
|
@ -242,7 +242,7 @@ QQnxWindow::~QQnxWindow()
|
|||||||
void QQnxWindow::setGeometry(const QRect &rect)
|
void QQnxWindow::setGeometry(const QRect &rect)
|
||||||
{
|
{
|
||||||
QRect newGeometry = 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();
|
newGeometry = screen()->geometry();
|
||||||
|
|
||||||
setGeometryHelper(newGeometry);
|
setGeometryHelper(newGeometry);
|
||||||
@ -714,7 +714,7 @@ void QQnxWindow::initWindow()
|
|||||||
if (window()->parent() && window()->parent()->handle())
|
if (window()->parent() && window()->parent()->handle())
|
||||||
setParent(window()->parent()->handle());
|
setParent(window()->parent()->handle());
|
||||||
|
|
||||||
if (screen()->rootWindow() == this) {
|
if (shouldMakeFullScreen()) {
|
||||||
setGeometryHelper(screen()->geometry());
|
setGeometryHelper(screen()->geometry());
|
||||||
QWindowSystemInterface::handleGeometryChange(window(), screen()->geometry());
|
QWindowSystemInterface::handleGeometryChange(window(), screen()->geometry());
|
||||||
} else {
|
} else {
|
||||||
@ -817,4 +817,9 @@ void QQnxWindow::windowPosted()
|
|||||||
qqnxLgmonFramePosted(m_cover); // for performance measurements
|
qqnxLgmonFramePosted(m_cover); // for performance measurements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QQnxWindow::shouldMakeFullScreen() const
|
||||||
|
{
|
||||||
|
return ((screen()->rootWindow() == this) && (QQnxIntegration::options() & QQnxIntegration::FullScreenApplication));
|
||||||
|
}
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -112,6 +112,8 @@ public:
|
|||||||
QByteArray groupName() const { return m_windowGroupName; }
|
QByteArray groupName() const { return m_windowGroupName; }
|
||||||
void joinWindowGroup(const QByteArray &groupName);
|
void joinWindowGroup(const QByteArray &groupName);
|
||||||
|
|
||||||
|
bool shouldMakeFullScreen() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int pixelFormat() const = 0;
|
virtual int pixelFormat() const = 0;
|
||||||
virtual void resetBuffers() = 0;
|
virtual void resetBuffers() = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user