diff -r 4785f57bf3d4 -r 03646e8da489 homescreenapp/stateplugins/hshomescreenstateplugin/src/hsidlewidget.cpp --- 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()); }