[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