Commit 1d0e75bc authored by Fushan Wen's avatar Fushan Wen 💬
Browse files

x11client: Replace activityList with m_activityList

KWin does not update activity status when setting `_KDE_NET_WM_ACTIVITIES`
to nullUuid outside of KWin, which causes "All Activities" not working
as expected for KWindowSystem.

`X11Client::activityList` is not kept in sync with
`AbstractClient::m_activityList`. Move `m_activityList` from private to
protected, and use it in `X11Client::readActivities`

BUG: 440496
parent 34a08135
Pipeline #110887 passed with stage
in 20 minutes and 23 seconds
......@@ -1238,6 +1238,8 @@ protected:
void cleanTabBox();
QStringList m_activityList;
private Q_SLOTS:
void shadeHover();
void shadeUnhover();
......@@ -1265,7 +1267,6 @@ private:
ShadeMode m_shadeMode = ShadeNone;
QVector <VirtualDesktop *> m_desktops;
QStringList m_activityList;
int m_activityUpdatesBlocked = 0;
bool m_blockedActivityUpdatesRequireTransients = false;
......
......@@ -2409,16 +2409,16 @@ void X11Client::readActivities(Xcb::StringProperty &property)
if (prop == Activities::nullUuid()) {
//copied from setOnAllActivities to avoid a redundant XChangeProperty.
if (!activityList.isEmpty()) {
activityList.clear();
if (!m_activityList.isEmpty()) {
m_activityList.clear();
updateActivities(true);
}
return;
}
if (prop.isEmpty()) {
//note: this makes it *act* like it's on all activities but doesn't set the property to 'ALL'
if (!activityList.isEmpty()) {
activityList.clear();
if (!m_activityList.isEmpty()) {
m_activityList.clear();
updateActivities(true);
}
return;
......@@ -2426,7 +2426,7 @@ void X11Client::readActivities(Xcb::StringProperty &property)
newActivitiesList = prop.split(u',');
if (newActivitiesList == activityList)
if (newActivitiesList == m_activityList)
return; //expected change, it's ok.
//otherwise, somebody else changed it. we need to validate before reacting.
......
......@@ -448,7 +448,6 @@ private:
Xcb::Window m_client;
Xcb::Window m_wrapper;
Xcb::Window m_frame;
QStringList activityList;
int m_activityUpdatesBlocked;
bool m_blockedActivityUpdatesRequireTransients;
Xcb::Window m_moveResizeGrabWindow;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment