KDE/kdebase/workspace/plasma/desktop/shell

Aaron J. Seigo aseigo at kde.org
Tue Jun 29 17:58:41 CEST 2010


On June 28, 2010, Marco Martin wrote:
> SVN commit 1143845 by mart:
> 
> avoid a crash in the following scenario: change the activity type of a
> containment, then try to stop the activity. it still misbehaves, because
> the new containment it gets created is not added to the activity

ah, because in insertContainment there is this:

    QPair<int,int> key(screen, desktop);
    if (m_containments.contains(key)) {
        //this almost certainly means someone has been meddling where they 
shouldn't
        //but we should protect them from harm anyways
        kDebug() << "@!@!@!@!@!@@@@rejecting containment!!!";
        cont->context()->setCurrentActivityId(QString());
        return;
    }

protecting against deletion behind Activity's back is fine (so i think your 
commit should be backported), but this particular problem stems from 
BackgroundDialog in libplasmagenericshell and Activity in plasma-desktop. they 
aren't really welld designed to work together. there are various possible ways 
to improve the situation, such as giving BackgroundDialog a virtual method 
that does the actual swapContainment call and which plasma-desktop could re-
implemented internally to do the Activity coordination.

now that activities are in basically there, we can start sorting out these 
interface issues in 4.6. the BackgroundDialog class needs work anyways.

for 4.5, though, i'd recommend just backporting your commit.

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20100629/3e59fc47/attachment.sig 


More information about the Plasma-devel mailing list