src/gui/kernel/qdesktopwidget_s60.cpp
changeset 37 758a864f9613
parent 19 fcece45ef507
--- a/src/gui/kernel/qdesktopwidget_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qdesktopwidget_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -103,6 +103,10 @@
 
     rects->resize(QDesktopWidgetPrivate::screenCount);
     workrects->resize(QDesktopWidgetPrivate::screenCount);
+
+    (*rects)[0].setRect(0, 0, S60->screenWidthInPixels, S60->screenHeightInPixels);
+    QRect wr = qt_TRect2QRect(static_cast<CEikAppUi*>(S60->appUi())->ClientRect());
+    (*workrects)[0].setRect(wr.x(), wr.y(), wr.width(), wr.height());
 }
 
 void QDesktopWidgetPrivate::cleanup()
@@ -146,17 +150,23 @@
     return this;
 }
 
-const QRect QDesktopWidget::availableGeometry(int /* screen */) const
+const QRect QDesktopWidget::availableGeometry(int screen) const
 {
-    TRect clientRect = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
-    return qt_TRect2QRect(clientRect);
+    Q_D(const QDesktopWidget);
+    if (screen < 0 || screen >= d->screenCount)
+        screen = d->primaryScreen;
+
+    return d->workrects->at(screen);
 }
 
-const QRect QDesktopWidget::screenGeometry(int /* screen */) const
+const QRect QDesktopWidget::screenGeometry(int screen) const
 {
     Q_D(const QDesktopWidget);
-    return QRect(0, 0, S60->screenWidthInPixels, S60->screenHeightInPixels);
-    }
+    if (screen < 0 || screen >= d->screenCount)
+        screen = d->primaryScreen;
+
+    return d->rects->at(screen);
+}
 
 int QDesktopWidget::screenNumber(const QWidget * /* widget */) const
 {