src/gui/kernel/qsoftkeymanager.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
--- a/src/gui/kernel/qsoftkeymanager.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/src/gui/kernel/qsoftkeymanager.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -162,6 +162,7 @@
 
 void QSoftKeyManager::updateSoftKeys()
 {
+    QSoftKeyManager::instance()->d_func()->pendingUpdate = true;
     QEvent *event = new QEvent(QEvent::UpdateSoftKeys);
     QApplication::postEvent(QSoftKeyManager::instance(), event);
 }
@@ -250,6 +251,7 @@
     }
 
     d->updateSoftKeys_sys();
+    d->pendingUpdate = false;
     return true;
 }
 
@@ -275,6 +277,9 @@
 #ifdef Q_WS_S60
 bool QSoftKeyManager::handleCommand(int command)
 {
+    if (QSoftKeyManager::instance()->d_func()->pendingUpdate)
+        (void)QSoftKeyManager::instance()->handleUpdateSoftKeys();
+
     return static_cast<QSoftKeyManagerPrivateS60*>(QSoftKeyManager::instance()->d_func())->handleCommand(command);
 }
 #endif