[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