summaryrefslogtreecommitdiff
authorsimon <simon>2003-03-25 20:30:12 (UTC)
committer simon <simon>2003-03-25 20:30:12 (UTC)
commit3a4ee8d8a53ca17703b34f84e1a411056ee7e50f (patch) (side-by-side diff)
tree6010cc8c464767725a7ab8b973428945dca62994
parentf7395e72a415322101ee3e22cb0e10b6bdf60a63 (diff)
downloadopie-3a4ee8d8a53ca17703b34f84e1a411056ee7e50f.zip
opie-3a4ee8d8a53ca17703b34f84e1a411056ee7e50f.tar.gz
opie-3a4ee8d8a53ca17703b34f84e1a411056ee7e50f.tar.bz2
- keep an eye on resize events on the desktop widget, which are an
indication for things like life rotation. upon a resize re-layout things (taskbar, tabs and maxwindow rect)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp31
-rw-r--r--core/launcher/desktop.h2
-rw-r--r--core/launcher/taskbar.h3
3 files changed, 28 insertions, 8 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index 86527f6..6def126 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -507,7 +507,7 @@ Desktop::Desktop() :
QSize sz = tb->sizeHint();
setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
- tb->setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
+ layout();
tb->show();
launcher->showMaximized();
@@ -524,6 +524,7 @@ Desktop::Desktop() :
packageSlave = new PackageSlave( this );
qApp->installEventFilter( this );
+ qApp->desktop()->installEventFilter( this );
qApp-> setMainWidget ( launcher );
}
@@ -732,12 +733,7 @@ void Desktop::toggleCapsLockState()
void Desktop::styleChange( QStyle &s )
{
QWidget::styleChange( s );
- int displayw = qApp->desktop() ->width();
- int displayh = qApp->desktop() ->height();
-
- QSize sz = tb->sizeHint();
-
- tb->setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
+ layout();
}
void DesktopApplication::shutdown()
@@ -806,6 +802,17 @@ void DesktopApplication::restart()
#endif
}
+void Desktop::layout()
+{
+ int displayw = qApp->desktop() ->width();
+ int displayh = qApp->desktop() ->height();
+
+ QSize sz = tb->sizeHint();
+
+ tb->setGeometry( 0, displayh - sz.height(), displayw, sz.height() );
+ tb->calcMaxWindowRect();
+}
+
void Desktop::startTransferServer()
{
// start qcop bridge server
@@ -830,6 +837,16 @@ void Desktop::timerEvent( QTimerEvent *e )
startTransferServer();
}
+bool Desktop::eventFilter( QObject *o, QEvent *ev )
+{
+ if ( o != qApp->desktop() || ev->type() != QEvent::Resize )
+ return QWidget::eventFilter( o, ev );
+
+ layout();
+
+ return QWidget::eventFilter( o, ev );
+}
+
void Desktop::terminateServers()
{
delete transferServer;
diff --git a/core/launcher/desktop.h b/core/launcher/desktop.h
index 4024c38..86d8aa8 100644
--- a/core/launcher/desktop.h
+++ b/core/launcher/desktop.h
@@ -134,12 +134,14 @@ protected:
void executeOrModify( const QString& appLnkFile );
void styleChange( QStyle & );
void timerEvent( QTimerEvent *e );
+ virtual bool eventFilter( QObject *o, QEvent *ev );
QWidget *bg;
Launcher *launcher;
TaskBar *tb;
private:
+ void layout();
void startTransferServer();
bool recoverMemory();
diff --git a/core/launcher/taskbar.h b/core/launcher/taskbar.h
index cd631ef..a0bf395 100644
--- a/core/launcher/taskbar.h
+++ b/core/launcher/taskbar.h
@@ -61,8 +61,9 @@ protected:
void styleChange( QStyle & );
void setStatusMessage( const QString &text );
-private slots:
+public slots:
void calcMaxWindowRect();
+private slots:
void receive( const QCString &msg, const QByteArray &data );
private: