From 44699e7e0df95f14b973f937ee1b6b8cc62d49e8 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 15 Feb 2013 12:30:32 +0100 Subject: [PATCH] make alpha blended panels work unfortunately all windows must have alpha channel --- src/shell/desktopcorona.cpp | 1 + src/shell/panelview.cpp | 5 ++--- src/shell/view.cpp | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/shell/desktopcorona.cpp b/src/shell/desktopcorona.cpp index 03b5575f9..2deac8f95 100644 --- a/src/shell/desktopcorona.cpp +++ b/src/shell/desktopcorona.cpp @@ -186,6 +186,7 @@ void DesktopCorona::checkViews() } else if (m_views.count() < m_desktopWidget->screenCount()) { for (int i = m_views.count(); i < m_desktopWidget->screenCount(); ++i) { View *view = new View(this); + QSurfaceFormat format; view->init(); view->show(); diff --git a/src/shell/panelview.cpp b/src/shell/panelview.cpp index ac50388d0..01d0503eb 100644 --- a/src/shell/panelview.cpp +++ b/src/shell/panelview.cpp @@ -25,12 +25,11 @@ PanelView::PanelView(Plasma::Corona *corona, QWindow *parent) : View(corona, parent) { - //FIXME: this works only if done in View - /*QSurfaceFormat format; + QSurfaceFormat format; format.setAlphaBufferSize(8); setFormat(format); setClearBeforeRendering(true); - setColor(QColor(Qt::transparent));*/ + setColor(QColor(Qt::transparent)); setFlags(Qt::FramelessWindowHint); } diff --git a/src/shell/view.cpp b/src/shell/view.cpp index 367225c78..d5ab7be8a 100644 --- a/src/shell/view.cpp +++ b/src/shell/view.cpp @@ -28,6 +28,11 @@ View::View(Plasma::Corona *corona, QWindow *parent) : QQuickView(parent), m_corona(corona) { + //FIXME: for some reason all windows must have alpha enable otherwise the ones that do won't paint. + //Probably is an architectural problem + QSurfaceFormat format; + format.setAlphaBufferSize(8); + setFormat(format); } View::~View()