summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/qwaylanddisplay.cpp5
-rw-r--r--src/client/qwaylanddisplay_p.h1
-rw-r--r--src/client/qwaylandwindow.cpp5
-rw-r--r--src/client/qwaylandwindow_p.h1
-rw-r--r--src/plugins/decorations/bradient/main.cpp5
5 files changed, 15 insertions, 2 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index 5e67cd3a6..c57dc13ad 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -413,6 +413,11 @@ void QWaylandDisplay::setLastInputDevice(QWaylandInputDevice *device, uint32_t s
mLastInputWindow = win;
}
+bool QWaylandDisplay::isWindowActivated(const QWaylandWindow *window)
+{
+ return mActiveWindows.contains(const_cast<QWaylandWindow *>(window));
+}
+
void QWaylandDisplay::handleWindowActivated(QWaylandWindow *window)
{
if (mActiveWindows.contains(window))
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
index 8839bbe4c..71a39dd92 100644
--- a/src/client/qwaylanddisplay_p.h
+++ b/src/client/qwaylanddisplay_p.h
@@ -176,6 +176,7 @@ public:
QWaylandWindow *lastInputWindow() const;
void setLastInputDevice(QWaylandInputDevice *device, uint32_t serial, QWaylandWindow *window);
+ bool isWindowActivated(const QWaylandWindow *window);
void handleWindowActivated(QWaylandWindow *window);
void handleWindowDeactivated(QWaylandWindow *window);
void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice);
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 760390917..e58e87221 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -943,6 +943,11 @@ bool QWaylandWindow::isExposed() const
return QPlatformWindow::isExposed();
}
+bool QWaylandWindow::isActive() const
+{
+ return mDisplay->isWindowActivated(this);
+}
+
int QWaylandWindow::scale() const
{
return mScale;
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index b6b499a3b..d11ed871b 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -146,6 +146,7 @@ public:
void requestActivateWindow() override;
bool isExposed() const override;
+ bool isActive() const override;
void unfocus();
QWaylandAbstractDecoration *decoration() const;
diff --git a/src/plugins/decorations/bradient/main.cpp b/src/plugins/decorations/bradient/main.cpp
index 1df3ac62b..3fa723446 100644
--- a/src/plugins/decorations/bradient/main.cpp
+++ b/src/plugins/decorations/bradient/main.cpp
@@ -132,6 +132,7 @@ QMargins QWaylandBradientDecoration::margins() const
void QWaylandBradientDecoration::paint(QPaintDevice *device)
{
+ bool active = window()->handle()->isActive();
QRect surfaceRect(QPoint(), window()->frameGeometry().size());
QRect clips[] =
{
@@ -183,7 +184,7 @@ void QWaylandBradientDecoration::paint(QPaintDevice *device)
p.save();
p.setClipRect(titleBar);
- p.setPen(window()->isActive() ? m_foregroundColor : m_foregroundInactiveColor);
+ p.setPen(active ? m_foregroundColor : m_foregroundInactiveColor);
QSizeF size = m_windowTitle.size();
int dx = (top.width() - size.width()) /2;
int dy = (top.height()- size.height()) /2;
@@ -199,7 +200,7 @@ void QWaylandBradientDecoration::paint(QPaintDevice *device)
QRectF rect;
// Default pen
- QPen pen(window()->isActive() ? m_foregroundColor : m_foregroundInactiveColor);
+ QPen pen(active ? m_foregroundColor : m_foregroundInactiveColor);
p.setPen(pen);
// Close button