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

List:       kde-commits
Subject:    [kactivities/KDE/4.8] service: Remember current desktop when changing activity.
From:       Lamarque V. Souza <lamarque () kde ! org>
Date:       2012-03-31 17:26:54
Message-ID: 20120331172654.B0AF3A60A9 () git ! kde ! org
[Download RAW message or body]

Git commit 6397ef5f8977af0d867c7ab72b0ccf8cb9011771 by Lamarque V. Souza.
Committed on 31/03/2012 at 19:22.
Pushed by lvsouza into branch 'KDE/4.8'.

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

REVIEW: 104261
BUG: 241864

M  +15   -0    service/ActivityManager.cpp
M  +1    -0    service/ActivityManager_p.h

http://commits.kde.org/kactivities/6397ef5f8977af0d867c7ab72b0ccf8cb9011771

diff --git a/service/ActivityManager.cpp b/service/ActivityManager.cpp
index e12edf9..8927c43 100644
--- a/service/ActivityManager.cpp
+++ b/service/ActivityManager.cpp
@@ -237,6 +237,11 @@ KConfigGroup ActivityManagerPrivate::mainConfig()
     return KConfigGroup(&config, "main");
 }
 
+KConfigGroup ActivityManagerPrivate::activitiesDesktopsConfig()
+{
+    return KConfigGroup(&config, "activitiesDesktops");
+}
+
 void ActivityManagerPrivate::ensureCurrentActivityIsRunning()
 {
     QStringList runningActivities = q->ListActivities(ActivityManager::Running);
@@ -284,6 +289,8 @@ bool ActivityManagerPrivate::setCurrentActivity(const QString & \
id)  //         );
         // }
 
+        activitiesDesktopsConfig().writeEntry(currentActivity, \
QString::number(KWindowSystem::currentDesktop())); +
         q->StartActivity(id);
 
         currentActivity = id;
@@ -295,6 +302,14 @@ bool ActivityManagerPrivate::setCurrentActivity(const QString & \
                id)
     // kDebug() << (void*) SharedInfo::self() << "Rankings << shared info";
     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);
+    }
+
     return true;
 }
 
diff --git a/service/ActivityManager_p.h b/service/ActivityManager_p.h
index 51e20bc..3ea1d8a 100644
--- a/service/ActivityManager_p.h
+++ b/service/ActivityManager_p.h
@@ -80,6 +80,7 @@ public:
 public:
     void initConifg();
 
+    KConfigGroup activitiesDesktopsConfig();
     KConfigGroup activitiesConfig();
     KConfigGroup mainConfig();
     QString activityName(const QString & id);


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

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