From ef0f6267822c782f0b555e15ddab24c41c51d2e8 Mon Sep 17 00:00:00 2001 From: Markku Luukkainen Date: Sat, 6 Jun 2009 19:37:37 +0200 Subject: Added support for setting softkeys dynamically --- src/gui/kernel/qwidget.cpp | 6 ++++-- src/gui/kernel/qwidget_s60.cpp | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 7a8b143..e82fbd2 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -11531,7 +11531,8 @@ void QWidget::setSoftKeys(QAction *softKey) d->softKeys.clear(); if (softKey) d->softKeys.append(softKey); -// d->setNativeSoftKeys(softkeys); + if (QApplication::focusWidget() == this) + d->setNativeSoftKeys(this->softKeys()); } void QWidget::setSoftKeys(const QList &softKeys) @@ -11542,7 +11543,8 @@ void QWidget::setSoftKeys(const QList &softKeys) for(int i = 0; i < softKeys.count(); i++) d->softKeys.append(softKeys.at(i)); - // d->setNativeSoftKeys(softkeys); + if (QApplication::focusWidget() == this) + d->setNativeSoftKeys(this->softKeys()); } /*! \fn const QX11Info &QWidget::x11Info() const diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 4e03206..cb2fc8f 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -107,7 +107,8 @@ static bool isSame(const QList& a, const QList& b) void QWidgetPrivate::setNativeSoftKeys(const QList &softkeys) { - if (QApplication::focusWidget()) { + Q_Q(QWidget); + if (QApplication::focusWidget() && q!=QApplication::focusWidget()) { QList old = QApplication::focusWidget()->softKeys(); if (isSame(old, softkeys )) return; -- cgit v0.12