Don't call constraintsUpdated() before init(), even if an event loop is created in an applet constructor.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=849656
This commit is contained in:
parent
8427acfc83
commit
c8823d1900
@ -1655,7 +1655,9 @@ QString AppletPrivate::instanceName()
|
||||
|
||||
void AppletPrivate::scheduleConstraintsUpdate(Plasma::Constraints c)
|
||||
{
|
||||
if (!constraintsTimerId) {
|
||||
// Don't start up a timer if we're just starting up
|
||||
// flushPendingConstraints will be called by Corona
|
||||
if (!constraintsTimerId && !(c & Plasma::StartupCompletedConstraint)) {
|
||||
constraintsTimerId = q->startTimer(0);
|
||||
}
|
||||
pendingConstraints |= c;
|
||||
|
@ -176,7 +176,12 @@ class PLASMA_EXPORT Containment : public Applet
|
||||
const QRectF &geometry = QRectF(-1, -1, -1, -1));
|
||||
|
||||
/**
|
||||
* add existing applet to this containment at pos
|
||||
* Add an existing applet to this Containment
|
||||
*
|
||||
* If dontInit is true, the pending constraints are not flushed either.
|
||||
* So it is your responsibility to call both init() and
|
||||
* flushPendingConstraints() on the applet.
|
||||
*
|
||||
* @param applet the applet that should be added
|
||||
* @param pos the containment-relative position
|
||||
* @param dontInit if true, init() will not be called on the applet
|
||||
|
@ -289,6 +289,8 @@ void Corona::loadLayout(const QString& configName)
|
||||
|
||||
foreach(Applet* applet, containment->applets()) {
|
||||
applet->init();
|
||||
// We have to flush the applet constraints manually
|
||||
applet->flushPendingConstraintsEvents();
|
||||
}
|
||||
|
||||
containment->updateConstraints(Plasma::StartupCompletedConstraint);
|
||||
|
Loading…
Reference in New Issue
Block a user