From 5c2e560fe94e00502b7de811cd33c4da08b18c2b Mon Sep 17 00:00:00 2001 From: Kevin Krammer Date: Fri, 20 Apr 2012 17:53:54 +0200 Subject: [PATCH] Send Expose event when top level window becomes visible Change-Id: I0b45c27fa03bbe073c88ce8d01d9fb283f4051c1 Reviewed-by: Nicolas Arnaud-Cormos Reviewed-by: Rafael Roquetto Reviewed-by: Sean Harmer Reviewed-by: Robin Burchell --- src/plugins/platforms/qnx/qqnxwindow.cpp | 8 ++++++++ src/plugins/platforms/qnx/qqnxwindow.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/plugins/platforms/qnx/qqnxwindow.cpp b/src/plugins/platforms/qnx/qqnxwindow.cpp index 2b41631d06..85c3e495f8 100644 --- a/src/plugins/platforms/qnx/qqnxwindow.cpp +++ b/src/plugins/platforms/qnx/qqnxwindow.cpp @@ -240,6 +240,9 @@ void QQnxWindow::setVisible(bool visible) root->updateVisibility(root->m_visible); window()->requestActivateWindow(); + + if (window()->isTopLevel() && visible) + QWindowSystemInterface::handleExposeEvent(window(), window()->geometry()); } void QQnxWindow::updateVisibility(bool parentVisible) @@ -278,6 +281,11 @@ void QQnxWindow::setOpacity(qreal level) // the transparency will look wrong... } +bool QQnxWindow::isExposed() const +{ + return m_visible; +} + void QQnxWindow::setBufferSize(const QSize &size) { #if defined(QQNXWINDOW_DEBUG) diff --git a/src/plugins/platforms/qnx/qqnxwindow.h b/src/plugins/platforms/qnx/qqnxwindow.h index 63e71c0bf8..fc27c128b6 100644 --- a/src/plugins/platforms/qnx/qqnxwindow.h +++ b/src/plugins/platforms/qnx/qqnxwindow.h @@ -73,6 +73,8 @@ public: void setVisible(bool visible); void setOpacity(qreal level); + bool isExposed() const; + WId winId() const { return (WId)m_window; } screen_window_t nativeHandle() const { return m_window; }