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
This commit is contained in:
parent
34a0813567
commit
1d0e75bc5c
3 changed files with 7 additions and 7 deletions
|
@ -1238,6 +1238,8 @@ protected:
|
||||||
|
|
||||||
void cleanTabBox();
|
void cleanTabBox();
|
||||||
|
|
||||||
|
QStringList m_activityList;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void shadeHover();
|
void shadeHover();
|
||||||
void shadeUnhover();
|
void shadeUnhover();
|
||||||
|
@ -1265,7 +1267,6 @@ private:
|
||||||
ShadeMode m_shadeMode = ShadeNone;
|
ShadeMode m_shadeMode = ShadeNone;
|
||||||
QVector <VirtualDesktop *> m_desktops;
|
QVector <VirtualDesktop *> m_desktops;
|
||||||
|
|
||||||
QStringList m_activityList;
|
|
||||||
int m_activityUpdatesBlocked = 0;
|
int m_activityUpdatesBlocked = 0;
|
||||||
bool m_blockedActivityUpdatesRequireTransients = false;
|
bool m_blockedActivityUpdatesRequireTransients = false;
|
||||||
|
|
||||||
|
|
|
@ -2409,16 +2409,16 @@ void X11Client::readActivities(Xcb::StringProperty &property)
|
||||||
|
|
||||||
if (prop == Activities::nullUuid()) {
|
if (prop == Activities::nullUuid()) {
|
||||||
//copied from setOnAllActivities to avoid a redundant XChangeProperty.
|
//copied from setOnAllActivities to avoid a redundant XChangeProperty.
|
||||||
if (!activityList.isEmpty()) {
|
if (!m_activityList.isEmpty()) {
|
||||||
activityList.clear();
|
m_activityList.clear();
|
||||||
updateActivities(true);
|
updateActivities(true);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (prop.isEmpty()) {
|
if (prop.isEmpty()) {
|
||||||
//note: this makes it *act* like it's on all activities but doesn't set the property to 'ALL'
|
//note: this makes it *act* like it's on all activities but doesn't set the property to 'ALL'
|
||||||
if (!activityList.isEmpty()) {
|
if (!m_activityList.isEmpty()) {
|
||||||
activityList.clear();
|
m_activityList.clear();
|
||||||
updateActivities(true);
|
updateActivities(true);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -2426,7 +2426,7 @@ void X11Client::readActivities(Xcb::StringProperty &property)
|
||||||
|
|
||||||
newActivitiesList = prop.split(u',');
|
newActivitiesList = prop.split(u',');
|
||||||
|
|
||||||
if (newActivitiesList == activityList)
|
if (newActivitiesList == m_activityList)
|
||||||
return; //expected change, it's ok.
|
return; //expected change, it's ok.
|
||||||
|
|
||||||
//otherwise, somebody else changed it. we need to validate before reacting.
|
//otherwise, somebody else changed it. we need to validate before reacting.
|
||||||
|
|
|
@ -448,7 +448,6 @@ private:
|
||||||
Xcb::Window m_client;
|
Xcb::Window m_client;
|
||||||
Xcb::Window m_wrapper;
|
Xcb::Window m_wrapper;
|
||||||
Xcb::Window m_frame;
|
Xcb::Window m_frame;
|
||||||
QStringList activityList;
|
|
||||||
int m_activityUpdatesBlocked;
|
int m_activityUpdatesBlocked;
|
||||||
bool m_blockedActivityUpdatesRequireTransients;
|
bool m_blockedActivityUpdatesRequireTransients;
|
||||||
Xcb::Window m_moveResizeGrabWindow;
|
Xcb::Window m_moveResizeGrabWindow;
|
||||||
|
|
Loading…
Reference in a new issue