summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/qpeapplication.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 90cd5f1..ae1632e 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -170,37 +170,41 @@ public:
#endif
delete r;
}
}
static void show_mx(QWidget* mw, bool nomaximize, QString &strName/* = QString::null */)
{
+ QPoint p;
+ QSize s;
+ bool max;
if ( mw->isVisible() ) {
+ if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) {
+ mw->resize(s);
+ mw->move(p);
+ }
mw->raise();
} else {
- QPoint p;
- QSize s;
if ( mw->layout() && mw->inherits("QDialog") ) {
- bool max;
if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) {
mw->resize(s);
mw->move(p);
- if ( max && !nomaximize )
+ if ( max && !nomaximize ) {
mw->showMaximized();
- else
+ } else {
mw->show();
+ }
} else {
qpe_show_dialog((QDialog*)mw,nomaximize);
}
} else {
- bool max;
if ( read_widget_rect(strName, max, p, s) && validate_widget_size(mw, p, s) ) {
mw->resize(s);
mw->move(p);
} else { //no stored rectangle, make an estimation
int x = (qApp->desktop()->width()-mw->frameGeometry().width())/2;
int y = (qApp->desktop()->height()-mw->frameGeometry().height())/2;
mw->move( QMAX(x,0), QMAX(y,0) );
#ifdef Q_WS_QWS
@@ -297,17 +301,17 @@ static void qpe_show_dialog( QDialog* d, bool nomax )
d->show();
}
}
static bool read_widget_rect(const QString &app, bool &maximized, QPoint &p, QSize &s)
{
maximized = TRUE;
-
+ qDebug("read_widget_rect");
// 350 is the trigger in qwsdefaultdecoration for providing a resize button
if ( qApp->desktop()->width() <= 350 )
return FALSE;
Config cfg( "qpe" );
cfg.setGroup("ApplicationPositions");
QString str = cfg.readEntry( app, QString::null );
QStringList l = QStringList::split(",", str);
@@ -369,17 +373,17 @@ static void qpe_show_dialog( QDialog* d, bool nomax )
return TRUE;
}
static void store_widget_rect(QWidget *w, QString &app)
{
// 350 is the trigger in qwsdefaultdecoration for providing a resize button
if ( qApp->desktop()->width() <= 350 )
return;
-
+ qDebug("store_widget_rect");
// we use these to map the offset of geometry and pos. ( we can only use normalGeometry to
// get the non-maximized version, so we have to do it the hard way )
int offsetX = w->x() - w->geometry().left();
int offsetY = w->y() - w->geometry().top();
QRect r;
if ( w->isMaximized() )
r = ( (HackWidget *) w)->normalGeometry();