[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kactivities] service: Remember current desktop when changing activity.
From:       Lamarque V. Souza <lamarque () kde ! org>
Date:       2012-03-31 17:27:39
Message-ID: 20120331172739.39A8CA60A9 () git ! kde ! org
[Download RAW message or body]

Git commit 43b05d53caa0f382dcf88e6e9ec9d2b9d7c4fdae by Lamarque V. Souza.
Committed on 31/03/2012 at 19:25.
Pushed by lvsouza into branch 'master'.

Remember current desktop when changing activity.
Thanks to makis marimpis for this patch.

REVIEW: 104261
BUG: 241864

M  +9    -0    service/ActivityManager.cpp
M  +5    -0    service/ActivityManager_Basics.cpp
M  +1    -0    service/ActivityManager_p.h

http://commits.kde.org/kactivities/43b05d53caa0f382dcf88e6e9ec9d2b9d7c4fdae

diff --git a/service/ActivityManager.cpp b/service/ActivityManager.cpp
index f67b9a8..911cc1a 100644
--- a/service/ActivityManager.cpp
+++ b/service/ActivityManager.cpp
@@ -298,6 +298,8 @@ bool ActivityManagerPrivate::setCurrentActivity(const QString & \
activity)  if (!activities.contains(activity)) return false;
     if (currentActivity == activity)    return true;
 
+    activitiesDesktopsConfig().writeEntry(currentActivity, \
QString::number(KWindowSystem::currentDesktop())); +
     // Start activity
     // TODO: Move this to job-based execution
     q->StartActivity(activity);
@@ -421,6 +423,13 @@ void ActivityManagerPrivate::emitCurrentActivityChanged(const \
QString & id)  SharedInfo::self()->setCurrentActivity(id);
     emit q->CurrentActivityChanged(id);
 
+    if (activitiesDesktopsConfig().hasKey(id)) {
+        int desktopId = activitiesDesktopsConfig().readEntry(id).toInt();
+
+        if (desktopId <= KWindowSystem::numberOfDesktops() && desktopId >= 0) {
+            KWindowSystem::setCurrentDesktop(desktopId);
+	}
+    }
 }
 
 QString ActivityManager::AddActivity(const QString & name)
diff --git a/service/ActivityManager_Basics.cpp b/service/ActivityManager_Basics.cpp
index b604712..9a9c9dd 100644
--- a/service/ActivityManager_Basics.cpp
+++ b/service/ActivityManager_Basics.cpp
@@ -38,6 +38,11 @@ KConfigGroup ActivityManagerPrivate::mainConfig()
     return KConfigGroup(&config, "main");
 }
 
+KConfigGroup ActivityManagerPrivate::activitiesDesktopsConfig()
+{
+    return KConfigGroup(&config, "activitiesDesktops");
+}
+
 QString ActivityManagerPrivate::activityName(const QString & id)
 {
     return activitiesConfig().readEntry(id, QString());
diff --git a/service/ActivityManager_p.h b/service/ActivityManager_p.h
index 698b91d..fb4ed01 100644
--- a/service/ActivityManager_p.h
+++ b/service/ActivityManager_p.h
@@ -88,6 +88,7 @@ public:
 public:
     void initConifg();
 
+    KConfigGroup activitiesDesktopsConfig();
     KConfigGroup activitiesConfig();
     KConfigGroup activityIconsConfig();
     KConfigGroup mainConfig();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic