summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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());