diff --git a/abstract_client.h b/abstract_client.h --- a/abstract_client.h +++ b/abstract_client.h @@ -984,6 +984,7 @@ virtual void doSetSkipTaskbar(); virtual void doSetSkipPager(); virtual void doSetSkipSwitcher(); + virtual void doSetDemandsAttention(); void setupWindowManagementInterface(); void destroyWindowManagementInterface(); diff --git a/abstract_client.cpp b/abstract_client.cpp --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -407,13 +407,15 @@ if (m_demandsAttention == set) return; m_demandsAttention = set; - if (info) { - info->setState(set ? NET::DemandsAttention : NET::States(), NET::DemandsAttention); - } + doSetDemandsAttention(); workspace()->clientAttentionChanged(this, set); emit demandsAttentionChanged(); } +void AbstractClient::doSetDemandsAttention() +{ +} + void AbstractClient::setDesktop(int desktop) { const int numberOfDesktops = VirtualDesktopManager::self()->count(); diff --git a/x11client.h b/x11client.h --- a/x11client.h +++ b/x11client.h @@ -365,6 +365,7 @@ void doSetSkipPager() override; void doSetSkipTaskbar() override; void doSetSkipSwitcher() override; + void doSetDemandsAttention() override; bool belongsToDesktop() const override; void setGeometryRestore(const QRect &geo) override; bool doStartMoveResize() override; diff --git a/x11client.cpp b/x11client.cpp --- a/x11client.cpp +++ b/x11client.cpp @@ -1922,6 +1922,11 @@ updateVisibility(); } +void X11Client::doSetDemandsAttention() +{ + info->setState(isDemandingAttention() ? NET::DemandsAttention : NET::States(), NET::DemandsAttention); +} + /** * Sets whether the client is on @p activity. * If you remove it from its last activity, then it's on all activities.