diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractviewitem.cpp --- a/src/hbwidgets/itemviews/hbabstractviewitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractviewitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -57,7 +57,7 @@ const QString KDefaultLayoutOption = "default"; const int HbAbstractViewItemShared::ViewItemDeferredDeleteEvent = QEvent::registerEventType(); -const int HbViewItemPressDelay = 50; +const int HbViewItemPressDelay = 100; /*! @alpha @@ -466,7 +466,20 @@ paintChildItemsRecursively(subChild, painter,option); } option->exposedRect = child->boundingRect(); + + bool restorePainter = false; + if (child->flags() & QGraphicsItem::ItemClipsToShape) { + painter->save(); + restorePainter = true; + + painter->setClipRect(child->boundingRect()); + } child->paint(painter, option, 0); + + if (restorePainter) { + painter->restore(); + } + // Draw children in front for (; i < count; ++i) { QGraphicsItem *subChild = children.at(i); @@ -1265,16 +1278,10 @@ { Q_D(const HbAbstractViewItem); if (d->mRepolishRequested) { - if (d->repolishOutstanding) { - // force the polish event in order to get the real size - // updateGeometry() in ::updateChildItems() causes this function to be called - // before QEvent::Polish of repolish() is handled from the event loop - QCoreApplication::sendPostedEvents(const_cast(this), QEvent::Polish); - } else { - // needed for pure widget or at startup phase, if first polish has not yet been done - QEvent polishEvent(QEvent::Polish); - QCoreApplication::sendEvent(const_cast(this), &polishEvent); - } + // force the polish event in order to get the real size + // updateGeometry() in ::updateChildItems() causes this function to be called + // before QEvent::Polish of repolish() is handled from the event loop. + QCoreApplication::sendPostedEvents(const_cast(this), QEvent::Polish); QCoreApplication::sendPostedEvents(const_cast(this), QEvent::LayoutRequest); } return HbWidget::sizeHint(which, constraint); @@ -1340,6 +1347,11 @@ Q_UNUSED(widget); Q_D(HbAbstractViewItem); + + if (!d->mFrontPixmapPainter) { + return; + } + if (!d->mInPaintItems) { bool usePixmapCache = d->usePixmapCache();