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

List:       kde-panel-devel
Subject:    KDE/kdebase/workspace/plasma/desktop/shell
From:       Marco Martin <notmart () gmail ! com>
Date:       2011-01-22 20:31:47
Message-ID: 20110122203147.0853EAC8B9 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1216356 by mart:

when taking an unused containment fail, explicitly create a new one
or we end up reassigning the same over and over again
CCMAIL:plasma-devel@kde.org


 M  +9 -2      activity.cpp  


--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/activity.cpp #1216355:1216356
@@ -151,6 +151,7 @@
 Plasma::Containment* Activity::containmentForScreen(int screen, int desktop)
 {
     Plasma::Containment *containment = m_containments.value(QPair<int,int>(screen, \
desktop)); +
     if (!containment) {
         kDebug() << "adding containment for" << screen << desktop;
         // first look to see if there are any unnasigned containments that are \
candidates for @@ -172,6 +173,7 @@
             // this allows the corona to either grab one for us that already exists \
                matching
             // screen and desktop, or create a new one. this also works regardless \
                of immutability
             containment = PlasmaApp::self()->corona()->containmentForScreen(screen, \
desktop, m_plugin); +
             if (!containment || \
!containment->context()->currentActivityId().isEmpty()) {  // possibly a plugin \
                failure, let's go for the default
                 containment = \
PlasmaApp::self()->corona()->containmentForScreen(screen, desktop, "default"); @@ \
                -189,13 +191,18 @@
                 // we got a containment, but it belongs to some other activity; \
let's unassign it  // from a screen and grab a new one
                 containment->setScreen(0);
-                containment = \
PlasmaApp::self()->corona()->containmentForScreen(screen, desktop, m_plugin); +       \
containment = PlasmaApp::self()->corona()->addContainment(m_plugin); +
                 if (!containment) {
                     // possibly a plugin failure, let's go for the default
-                    containment = \
PlasmaApp::self()->corona()->containmentForScreen(screen, desktop, "default"); +      \
containment = PlasmaApp::self()->corona()->addContainment("default");  }
+
+                if (containment) {
+                    containment->setScreen(screen, desktop);
             }
         }
+        }
 
         if (containment) {
             insertContainment(containment, screen, desktop);
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


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

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