homescreenapp/stateplugins/hshomescreenstateplugin/src/hsidlewidget.cpp
changeset 55 03646e8da489
parent 51 4785f57bf3d4
child 60 30f14686fb04
child 62 341166945d65
--- a/homescreenapp/stateplugins/hshomescreenstateplugin/src/hsidlewidget.cpp	Thu May 27 12:46:08 2010 +0300
+++ b/homescreenapp/stateplugins/hshomescreenstateplugin/src/hsidlewidget.cpp	Fri Jun 11 13:30:16 2010 +0300
@@ -109,10 +109,17 @@
 void HsIdleWidget::setGeometry(const QRectF &rect)
 {
     int n = HsScene::instance()->pages().count();
-    mControlLayer->resize(rect.size());
-    mPageLayer->resize(n * rect.width(), rect.height());
-    mSceneLayer->resize(2 * rect.width() + HsConfiguration::bounceEffect(), rect.height());
-    HbWidget::setGeometry(rect);
+	QRectF layoutRect(HsScene::instance()->mainWindow()->layoutRect());
+    if (layoutRect == rect || (layoutRect.height() == rect.width() && layoutRect.width() == rect.height())) {
+        mControlLayer->resize(rect.size());
+		mPageLayer->resize(n * rect.width(), rect.height());
+		mSceneLayer->resize(2 * rect.width() + HsConfiguration::bounceEffect(), rect.height());
+		HbWidget::setGeometry(rect);
+	} else {
+		QRectF sceneRect = mapToScene(rect).boundingRect();
+		sceneRect.setTop(-sceneRect.top());
+		HbWidget::setGeometry(sceneRect);
+	}
 }
 
 /*!
@@ -257,6 +264,7 @@
 {
     mTrashBin->hide();
     mTrashBin->deactivate();
+    mPageIndicator->setSpacing(HsConfiguration::pageIndicatorSpacing()); // for usability optimization widget, can be removed later on
     mPageIndicator->setVisible(1 < mPageIndicator->itemCount());
 }