[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/plasma
From: Marco Martin <notmart () gmail ! com>
Date: 2009-02-16 21:45:23
Message-ID: 1234820723.436454.23063.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 927141 by mart:
theory: the desktop breakage could happen because the panel overlaps the
desktop for a while, making containment()->view() or
corona::containmentfordesktop() fails, leaving the desktop view without
a containment
try to reposition the panel before a vertical movement, it should
prevent the panel to go into the desktop for an instant
CCBUG:176280
M +16 -10 containment.cpp
--- trunk/KDE/kdelibs/plasma/containment.cpp #927140:927141
@@ -1177,20 +1177,26 @@
{
//FIXME if the applet is moved to another containment we need to unfocus it
+ QVariant newValue = Applet::itemChange(change, value);
+
if (isContainment() && !ContainmentPrivate::s_positioning &&
- (change == QGraphicsItem::ItemSceneHasChanged || change == \
QGraphicsItem::ItemPositionHasChanged)) {
- switch (d->type) {
- case PanelContainment:
- case CustomPanelContainment:
- d->positionPanel();
- break;
- default:
- d->positionContainments();
- break;
+ (change == QGraphicsItem::ItemSceneChange || change == \
QGraphicsItem::ItemPositionChange)) { +
+ //if the position will be actually changed, reposition before the change
+ if (newValue == value) {
+ switch (d->type) {
+ case PanelContainment:
+ case CustomPanelContainment:
+ d->positionPanel();
+ break;
+ default:
+ d->positionContainments();
+ break;
+ }
}
}
- return Applet::itemChange(change, value);
+ return newValue;
}
void Containment::enableAction(const QString &name, bool enable)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic