diff options
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxwindow.cpp')
-rw-r--r-- | src/plugins/platforms/qnx/qqnxwindow.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/plugins/platforms/qnx/qqnxwindow.cpp b/src/plugins/platforms/qnx/qqnxwindow.cpp index 9ae2d01ab4..f11a009bca 100644 --- a/src/plugins/platforms/qnx/qqnxwindow.cpp +++ b/src/plugins/platforms/qnx/qqnxwindow.cpp @@ -242,19 +242,14 @@ 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); - // Send a geometry change event to Qt (triggers resizeEvent() in QWindow/QWidget). - - // Calling flushWindowSystemEvents() here would flush input events which - // could result in re-entering QQnxWindow::setGeometry() again. - QWindowSystemInterface::setSynchronousWindowsSystemEvents(true); QWindowSystemInterface::handleGeometryChange(window(), newGeometry); - QWindowSystemInterface::handleExposeEvent(window(), newGeometry); - QWindowSystemInterface::setSynchronousWindowsSystemEvents(false); + if (isExposed()) + QWindowSystemInterface::handleExposeEvent(window(), newGeometry); } void QQnxWindow::setGeometryHelper(const QRect &rect) @@ -714,7 +709,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 +812,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 |