[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