make alpha blended panels work

unfortunately all windows must have alpha channel
wilder-5.14
Marco Martin 13 years ago
parent ce5eaa8bd7
commit 7639cbb6a8
  1. 1
      desktopcorona.cpp
  2. 5
      panelview.cpp
  3. 5
      view.cpp

@ -186,6 +186,7 @@ void DesktopCorona::checkViews()
} else if (m_views.count() < m_desktopWidget->screenCount()) { } else if (m_views.count() < m_desktopWidget->screenCount()) {
for (int i = m_views.count(); i < m_desktopWidget->screenCount(); ++i) { for (int i = m_views.count(); i < m_desktopWidget->screenCount(); ++i) {
View *view = new View(this); View *view = new View(this);
QSurfaceFormat format;
view->init(); view->init();
view->show(); view->show();

@ -25,12 +25,11 @@
PanelView::PanelView(Plasma::Corona *corona, QWindow *parent) PanelView::PanelView(Plasma::Corona *corona, QWindow *parent)
: View(corona, parent) : View(corona, parent)
{ {
//FIXME: this works only if done in View QSurfaceFormat format;
/*QSurfaceFormat format;
format.setAlphaBufferSize(8); format.setAlphaBufferSize(8);
setFormat(format); setFormat(format);
setClearBeforeRendering(true); setClearBeforeRendering(true);
setColor(QColor(Qt::transparent));*/ setColor(QColor(Qt::transparent));
setFlags(Qt::FramelessWindowHint); setFlags(Qt::FramelessWindowHint);
} }

@ -28,6 +28,11 @@ View::View(Plasma::Corona *corona, QWindow *parent)
: QQuickView(parent), : QQuickView(parent),
m_corona(corona) 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() View::~View()

Loading…
Cancel
Save