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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/desktop/shell
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-11-23 22:17:23
Message-ID: 20101123221723.627B9AC8A2 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1200094 by aseigo:

* non-PVD *relies* on desktop == -1 to work; don't get cute and set the desktop value \
                when not in PVD!
* if opening fails, make sure we get containments for all screens and all desktops
* leave the state caching to the KActivityInfo class


 M  +10 -14    activity.cpp  
 M  +1 -1      activity.h  


--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.cpp #1200093:1200094
@@ -55,7 +55,6 @@
 
     m_name = m_info->name();
     m_icon = m_info->icon();
-    m_state = m_info->state();
 
     connect(m_info, SIGNAL(infoChanged()), this, SLOT(activityChanged()));
     connect(m_info, SIGNAL(stateChanged(KActivityInfo::State)), this, \
SLOT(activityStateChanged(KActivityInfo::State))); @@ -90,7 +89,6 @@
 
 void Activity::activityStateChanged(KActivityInfo::State state)
 {
-    m_state = state;
     emit stateChanged();
 }
 
@@ -130,7 +128,7 @@
 
 KActivityInfo::State Activity::state()
 {
-    return m_state;
+    return m_info->state();
 }
 
 void Activity::remove()
@@ -154,11 +152,6 @@
 
 Plasma::Containment* Activity::containmentForScreen(int screen, int desktop)
 {
-    //desktop -1 and 0 should share the same containment (for when PVD is changed)
-    if (desktop == -1) {
-        desktop = 0;
-    }
-
     Plasma::Containment *containment = m_containments.value(QPair<int,int>(screen, \
desktop));  if (!containment) {
         kDebug() << "adding containment for" << screen << desktop;
@@ -212,14 +205,17 @@
         opened();
     }
 
+    checkScreens();
+}
+
+void Activity::checkScreens()
+{
     //ensure there's a containment for every screen & desktop.
     int numScreens = Kephal::ScreenUtils::numScreens();
-    int numDesktops = 0;
-    if (AppSettings::perVirtualDesktopViews()) {
-        numDesktops = KWindowSystem::numberOfDesktops();
-    }
+    int numDesktops = AppSettings::perVirtualDesktopViews() ? \
KWindowSystem::numberOfDesktops() : 0; +
     for (int screen = 0; screen < numScreens; ++screen) {
-        if (numDesktops) {
+        if (numDesktops > 0) {
             for (int desktop = 0; desktop < numDesktops; ++desktop) {
                 activateContainment(screen, desktop);
             }
@@ -398,7 +394,7 @@
     if (m_containments.isEmpty()) {
         //TODO check if we need more for screens/desktops
         kDebug() << "open failed (bad file?). creating new containment";
-        containmentForScreen(0, 0);
+        checkScreens();
     }
 
     m_corona->requireConfigSync();
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.h #1200093:1200094
@@ -142,12 +142,12 @@
     void activateContainment(int screen, int desktop);
     void insertContainment(Plasma::Containment* cont, bool force=false);
     void insertContainment(Plasma::Containment* containment, int screen, int \
desktop); +    void checkScreens();
 
     QString m_id;
     QString m_name;
     QString m_icon;
     QString m_plugin;
-    KActivityInfo::State m_state;
     QHash<QPair<int,int>, Plasma::Containment*> m_containments;
     KActivityInfo *m_info;
     KActivityConsumer *m_activityConsumer;


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

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