summaryrefslogtreecommitdiffstats
path: root/src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp')
-rw-r--r--src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp b/src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp
index 8881b452..fb4c88d9 100644
--- a/src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp
+++ b/src/application-main-lib/waylandapplicationmanagerwindowimpl.cpp
@@ -40,6 +40,8 @@ WaylandApplicationManagerWindowImpl::WaylandApplicationManagerWindowImpl(Applica
, m_applicationMain(applicationMain)
, m_qwindow(new AMQuickWindowQmlImpl(window))
{
+ m_color = qUnpremultiply(m_qwindow->color().rgba64());
+
QObject::connect(m_qwindow, &AMQuickWindowQmlImpl::windowTitleChanged,
window, &ApplicationManagerWindow::titleChanged);
QObject::connect(m_qwindow, &AMQuickWindowQmlImpl::xChanged,
@@ -347,13 +349,15 @@ void WaylandApplicationManagerWindowImpl::setOpacity(qreal opactity)
QColor WaylandApplicationManagerWindowImpl::color() const
{
- return m_qwindow ? m_qwindow->color() : QColor { };
+ return m_qwindow ? m_color : QColor { };
}
void WaylandApplicationManagerWindowImpl::setColor(const QColor &c)
{
- if (m_qwindow)
- m_qwindow->setColor(c);
+ if (m_qwindow) {
+ m_color = c; // qUnpremultiply(qPremultiply(...)) introduces rounding errors
+ m_qwindow->setColor(qPremultiply(c.rgba64()));
+ }
}
bool WaylandApplicationManagerWindowImpl::isActive() const