summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorGareth Stockwell <gareth.stockwell@sosco.com>2009-08-28 17:29:23 (GMT)
committerGareth Stockwell <gareth.stockwell@sosco.com>2009-08-28 17:29:23 (GMT)
commit8b9d50a2d83fb05e1b32814c341936daf6628452 (patch)
tree15b7c79895605898e777af14919a622f319d95cc /src/gui/kernel
parent316ae5a88b71993de3e1e2e16f8b82c4e9c7a1cf (diff)
downloadQt-8b9d50a2d83fb05e1b32814c341936daf6628452.zip
Qt-8b9d50a2d83fb05e1b32814c341936daf6628452.tar.gz
Qt-8b9d50a2d83fb05e1b32814c341936daf6628452.tar.bz2
Modified show_sys to call ActivateL on all window-owning controls
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qapplication_s60.cpp4
-rw-r--r--src/gui/kernel/qwidget_s60.cpp9
2 files changed, 10 insertions, 3 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index b369168..67b974e 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -330,6 +330,10 @@ void QSymbianControl::ConstructL(bool topLevel, bool desktop)
*/
CreateWindowL(qwidget->parentWidget()->winId());
+ // Necessary in order to be able to track the activation status of
+ // the control's window
+ qwidget->d_func()->createTLExtra();
+
SetFocusing(true);
m_longTapDetector = QLongTapTimer::NewL(this);
}
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 3cc810e..94f5963 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -521,7 +521,7 @@ void QWidgetPrivate::show_sys()
return;
}
- if (q->isWindow() && q->internalWinId()) {
+ if (q->internalWinId()) {
WId id = q->internalWinId();
if (!extra->topextra->activated) {
@@ -529,12 +529,15 @@ void QWidgetPrivate::show_sys()
extra->topextra->activated = 1;
}
id->MakeVisible(true);
- id->SetFocus(true);
+
+ if(q->isWindow())
+ id->SetFocus(true);
// Force setting of the icon after window is made visible,
// this is needed even WA_SetWindowIcon is not set, as in that case we need
// to reset to the application level window icon
- setWindowIcon_sys(true);
+ if(q->isWindow())
+ setWindowIcon_sys(true);
}
invalidateBuffer(q->rect());