[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: 2010-03-31 19:48:23
Message-ID: 20100331194823.6AEE7AC888 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1109701 by mart:
move the popup before adjusting borders, makes it a bit less jumpy
M +28 -16 dialog.cpp
--- trunk/KDE/kdelibs/plasma/dialog.cpp #1109700:1109701
@@ -86,6 +86,7 @@
void checkBorders(bool updateMaskIfNeeded);
void updateResizeCorners();
int calculateWidthForHeightAndRatio(int height, qreal ratio);
+ Plasma::Applet *applet();
Plasma::Dialog *q;
@@ -161,22 +162,14 @@
checkBorders(true);
}
-void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
+Plasma::Applet *DialogPrivate::applet()
{
- if (resizeChecksWithBorderCheck) {
- background->resizeFrame(q->size());
- }
-
- QGraphicsWidget *graphicsWidget = graphicsWidgetPtr.data();
- const FrameSvg::EnabledBorders currentBorders = background->enabledBorders();
- FrameSvg::EnabledBorders borders = FrameSvg::AllBorders;
-
- Extender *extender = qobject_cast<Extender*>(graphicsWidget);
+ Extender *extender = qobject_cast<Extender*>(graphicsWidgetPtr.data());
Plasma::Applet *applet = 0;
if (extender) {
applet = extender->d->applet;
- } else if (graphicsWidget) {
- QObject *pw = graphicsWidget;
+ } else if (graphicsWidgetPtr) {
+ QObject *pw = graphicsWidgetPtr.data();
while ((pw = pw->parent())) {
applet = dynamic_cast<Plasma::Applet *>(pw);
@@ -185,7 +178,22 @@
}
}
}
+ return applet;
+}
+void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
+{
+ if (resizeChecksWithBorderCheck) {
+ background->resizeFrame(q->size());
+ }
+
+ QGraphicsWidget *graphicsWidget = graphicsWidgetPtr.data();
+ const FrameSvg::EnabledBorders currentBorders = background->enabledBorders();
+ FrameSvg::EnabledBorders borders = FrameSvg::AllBorders;
+
+ Extender *extender = qobject_cast<Extender*>(graphicsWidget);
+ Plasma::Applet *applet = this->applet();
+
//used to remove borders at the edge of the desktop
QDesktopWidget *desktop = QApplication::desktop();
QRect avail = desktop->availableGeometry(desktop->screenNumber(q));
@@ -199,10 +207,6 @@
//decide about disabling the border attached to the panel
if (applet) {
- Plasma::Corona *corona = qobject_cast<Plasma::Corona *>(applet->scene());
- if (corona) {
- q->move(corona->popupPosition(applet, q->size()));
- }
background->getMargins(leftWidth, topHeight, rightWidth, bottomHeight);
switch (applet->location()) {
@@ -561,6 +565,14 @@
d->view->setSceneRect(sceneRect);
d->view->centerOn(graphicsWidget);
}
+
+ Plasma::Applet *applet = d->applet();
+ if (applet) {
+ Plasma::Corona *corona = qobject_cast<Plasma::Corona *>(applet->scene());
+ if (corona) {
+ move(corona->popupPosition(applet, size()));
+ }
+ }
}
void DialogPrivate::updateResizeCorners()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic