src/hbcore/gui/hbmenucontainer_p.cpp
changeset 21 4633027730f5
parent 6 c3690ec91ef8
child 28 b7da29130b0e
--- a/src/hbcore/gui/hbmenucontainer_p.cpp	Tue Jul 06 14:36:53 2010 +0300
+++ b/src/hbcore/gui/hbmenucontainer_p.cpp	Wed Aug 18 10:05:37 2010 +0300
@@ -34,7 +34,7 @@
 #include <QGraphicsGridLayout>
 
 HbMenuContainerPrivate::HbMenuContainerPrivate(HbMenu *menu) :
-        menu(menu), actionManager(0)
+        menu(menu), actionManager(0), mDelayLayout(false)
 {
 }
 HbMenuContainerPrivate::~HbMenuContainerPrivate()
@@ -111,6 +111,7 @@
 void HbMenuContainer::delayedLayout()
 {
     Q_D(HbMenuContainer);
+    d->mDelayLayout = true;
     foreach (QAction *action, d->menu->actions()) {
         QObject::connect(action, SIGNAL(triggered()), d->menu, SLOT(_q_onActionTriggered()));
         if (action->isVisible()) {
@@ -118,6 +119,8 @@
             addItem(action);
         }
     }
+    d->mDelayLayout = false;
+    reLayout();
 }
 
 /*!
@@ -168,7 +171,8 @@
         HbMenuPrivate::d_ptr(castedAction->menu())->setSubMenuItem(item);
     }
     d->mItems.insert(pos, item);
-    reLayout();
+    if (!d->mDelayLayout)
+        reLayout();
 }
 
 //this is called when an existing items visibility has changed.
@@ -239,6 +243,7 @@
     d->mScrollDirections = Qt::Vertical;
     d->mFrictionEnabled = false;
     d->mContainer = new HbMenuContainer(menu, this);
+    d->mContainer->setFlag(QGraphicsItem::ItemHasNoContents, true);
     setContentWidget(d->mContainer);
     setScrollingStyle(HbScrollArea::Pan);
 }
@@ -344,3 +349,6 @@
         event->accept(panGesture);
     }
 }
+
+
+