diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/qwaylanddisplay.cpp | 5 | ||||
-rw-r--r-- | src/client/qwaylanddisplay_p.h | 1 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 5 | ||||
-rw-r--r-- | src/client/qwaylandwindow_p.h | 1 | ||||
-rw-r--r-- | src/plugins/decorations/bradient/main.cpp | 5 |
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 |