[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-03-20 22:17:46
Message-ID: 1237587466.100895.3725.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 942063 by mart:
don't let the popups escape from their containment
resolves part of 184983
CCBUG:184983
M +30 -4 corona.cpp
--- trunk/KDE/kdelibs/plasma/corona.cpp #942062:942063
@@ -494,16 +494,42 @@
switch (loc) {
case BottomEdge:
- pos = QPoint(pos.x(), v->geometry().y() - s.height());
+ case TopEdge: {
+ //TODO: following line makes them centered.
+ //could make it better or worse, must be decided
+ //pos.setX(pos.x() + item->boundingRect().width()/2 - s.width()/2);
+ if (pos.x() + s.width() > v->geometry().right()) {
+ pos.setX(v->geometry().right() - s.width());
+ } else {
+ pos.setX(qMax(pos.x(), v->geometry().left()));
+ }
break;
+ }
+ case LeftEdge:
+ case RightEdge: {
+ //pos.setY(pos.y() + item->boundingRect().height()/2 - s.height()/2);
+ if (pos.y() + s.height() > v->geometry().bottom()) {
+ pos.setY(v->geometry().bottom() - s.height());
+ } else {
+ pos.setY(qMax(pos.y(), v->geometry().top()));
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ switch (loc) {
+ case BottomEdge:
+ pos.setY(v->geometry().y() - s.height());
+ break;
case TopEdge:
- pos = QPoint(pos.x(), v->geometry().bottom());
+ pos.setY(v->geometry().bottom());
break;
case LeftEdge:
- pos = QPoint(v->geometry().right(), pos.y());
+ pos.setX(v->geometry().right());
break;
case RightEdge:
- pos = QPoint(v->geometry().x() - s.width(), pos.y());
+ pos.setX(v->geometry().x() - s.width());
break;
default:
if (pos.y() - s.height() > 0) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic