move the popup before adjusting borders, makes it a bit less jumpy
svn path=/trunk/KDE/kdelibs/; revision=1109701
This commit is contained in:
parent
8269a5055e
commit
6fc15a4687
46
dialog.cpp
46
dialog.cpp
|
@ -86,6 +86,7 @@ public:
|
||||||
void checkBorders(bool updateMaskIfNeeded);
|
void checkBorders(bool updateMaskIfNeeded);
|
||||||
void updateResizeCorners();
|
void updateResizeCorners();
|
||||||
int calculateWidthForHeightAndRatio(int height, qreal ratio);
|
int calculateWidthForHeightAndRatio(int height, qreal ratio);
|
||||||
|
Plasma::Applet *applet();
|
||||||
|
|
||||||
Plasma::Dialog *q;
|
Plasma::Dialog *q;
|
||||||
|
|
||||||
|
@ -161,6 +162,25 @@ void DialogPrivate::checkBorders()
|
||||||
checkBorders(true);
|
checkBorders(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Plasma::Applet *DialogPrivate::applet()
|
||||||
|
{
|
||||||
|
Extender *extender = qobject_cast<Extender*>(graphicsWidgetPtr.data());
|
||||||
|
Plasma::Applet *applet = 0;
|
||||||
|
if (extender) {
|
||||||
|
applet = extender->d->applet;
|
||||||
|
} else if (graphicsWidgetPtr) {
|
||||||
|
QObject *pw = graphicsWidgetPtr.data();
|
||||||
|
|
||||||
|
while ((pw = pw->parent())) {
|
||||||
|
applet = dynamic_cast<Plasma::Applet *>(pw);
|
||||||
|
if (applet) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return applet;
|
||||||
|
}
|
||||||
|
|
||||||
void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
|
void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
|
||||||
{
|
{
|
||||||
if (resizeChecksWithBorderCheck) {
|
if (resizeChecksWithBorderCheck) {
|
||||||
|
@ -172,19 +192,7 @@ void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
|
||||||
FrameSvg::EnabledBorders borders = FrameSvg::AllBorders;
|
FrameSvg::EnabledBorders borders = FrameSvg::AllBorders;
|
||||||
|
|
||||||
Extender *extender = qobject_cast<Extender*>(graphicsWidget);
|
Extender *extender = qobject_cast<Extender*>(graphicsWidget);
|
||||||
Plasma::Applet *applet = 0;
|
Plasma::Applet *applet = this->applet();
|
||||||
if (extender) {
|
|
||||||
applet = extender->d->applet;
|
|
||||||
} else if (graphicsWidget) {
|
|
||||||
QObject *pw = graphicsWidget;
|
|
||||||
|
|
||||||
while ((pw = pw->parent())) {
|
|
||||||
applet = dynamic_cast<Plasma::Applet *>(pw);
|
|
||||||
if (applet) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//used to remove borders at the edge of the desktop
|
//used to remove borders at the edge of the desktop
|
||||||
QDesktopWidget *desktop = QApplication::desktop();
|
QDesktopWidget *desktop = QApplication::desktop();
|
||||||
|
@ -199,10 +207,6 @@ void DialogPrivate::checkBorders(bool updateMaskIfNeeded)
|
||||||
|
|
||||||
//decide about disabling the border attached to the panel
|
//decide about disabling the border attached to the panel
|
||||||
if (applet) {
|
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);
|
background->getMargins(leftWidth, topHeight, rightWidth, bottomHeight);
|
||||||
|
|
||||||
switch (applet->location()) {
|
switch (applet->location()) {
|
||||||
|
@ -561,6 +565,14 @@ void Dialog::resizeEvent(QResizeEvent *event)
|
||||||
d->view->setSceneRect(sceneRect);
|
d->view->setSceneRect(sceneRect);
|
||||||
d->view->centerOn(graphicsWidget);
|
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()
|
void DialogPrivate::updateResizeCorners()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user