summaryrefslogtreecommitdiff
blob: 184c73c05b9f7e3e8345296257fe84a02bca4f19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
commit 569f79c60f8fd2b3e655433c2c53f840b4c103e9
Author: Thomas Lübking <thomas.luebking@gmail.com>
Date:   Sat Mar 2 22:27:20 2013 +0100

    Map NULL_UUID activity to ALL activities
    
    REVIEW: 109274
    BUG: 314830
    FIXED-IN: 4.10.2

diff --git a/kwin/client.cpp b/kwin/client.cpp
index 5fb6dcb..e16a1fe 100644
--- a/kwin/client.cpp
+++ b/kwin/client.cpp
@@ -1518,12 +1518,16 @@ void Client::setOnActivity(const QString &activity, bool enable)
 /**
  * set exactly which activities this client is on
  */
+#define NULL_UUID "00000000-0000-0000-0000-000000000000"
 void Client::setOnActivities(QStringList newActivitiesList)
 {
     QString joinedActivitiesList = newActivitiesList.join(",");
     joinedActivitiesList = rules()->checkActivity(joinedActivitiesList, false);
     newActivitiesList = joinedActivitiesList.split(',', QString::SkipEmptyParts);
 
+    if (newActivitiesList.contains(NULL_UUID))
+        newActivitiesList.clear(); // turn into "all"
+
     QStringList allActivities = workspace()->activityList();
     if ( newActivitiesList.isEmpty() ||
         (newActivitiesList.count() > 1 && newActivitiesList.count() == allActivities.count()) ||
@@ -2380,6 +2384,12 @@ void Client::checkActivities()
     }
 
     newActivitiesList = QString(prop).split(',');
+
+    if (newActivitiesList.contains(NULL_UUID)) {
+        setOnAllActivities(true);
+        return;
+    }
+
     if (newActivitiesList == activityList)
         return; //expected change, it's ok.