[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
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);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic