summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxrootwindow.h
diff options
context:
space:
mode:
authorMatt Hoosier <matt.hoosier@garmin.com>2013-05-16 11:01:23 -0500
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-23 20:01:40 +0200
commit77a06e7e6c517003585ba53b9776e90c8d290e84 (patch)
treea685f2de81eae4a29578bdfa34c05c2a8163670d /src/plugins/platforms/qnx/qqnxrootwindow.h
parent47a7628023610904c6ac52e23fa289f75f349b4e (diff)
QNX: Support window translucency
A few tactical changes were necessary to do this: * The root window's buffer must be the full size of the window in order for transparency to work. We now transition this buffer to full-size upon first request of some QWindow to be translucent. At the same time the root window is transitioned to being full- screen, we also set its alpha blending mode to Source-Over in order to permit lower z-ordered apps to show through. * Set the root window's buffer position to (0, 0) to avoid a momentary flicker of unpainted pixels on the far right-hand border as a translucent window comes on-screen. * Use Source-Over alpha blending for normal child windows too. The QtGui core logic for setting the backing surface pixel format to something with an alpha channel if Qt::WA_TranslucentBackground is set on the toplevel QWidget already accomplished the remainder of the work. Change-Id: I1c2b31aa6323b4555fa194313f0f5e06ada494fc Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxrootwindow.h')
-rw-r--r--src/plugins/platforms/qnx/qqnxrootwindow.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/platforms/qnx/qqnxrootwindow.h b/src/plugins/platforms/qnx/qqnxrootwindow.h
index aae1563c95..ea7c7faace 100644
--- a/src/plugins/platforms/qnx/qqnxrootwindow.h
+++ b/src/plugins/platforms/qnx/qqnxrootwindow.h
@@ -66,6 +66,8 @@ public:
void resize(const QSize &size);
+ void makeTranslucent();
+
QByteArray groupName() const { return m_windowGroupName; }
private:
@@ -74,6 +76,8 @@ private:
const QQnxScreen *m_screen;
screen_window_t m_window;
QByteArray m_windowGroupName;
+
+ bool m_translucent;
};
QT_END_NAMESPACE