src/gui/kernel/qapplication_s60.cpp
changeset 22 79de32ba3296
parent 19 fcece45ef507
child 23 89e065397ea6
equal deleted inserted replaced
19:fcece45ef507 22:79de32ba3296
   370 
   370 
   371 QSymbianControl::~QSymbianControl()
   371 QSymbianControl::~QSymbianControl()
   372 {
   372 {
   373     if (S60->curWin == this)
   373     if (S60->curWin == this)
   374         S60->curWin = 0;
   374         S60->curWin = 0;
   375     if (!QApplicationPrivate::is_app_closing)
   375     if (!QApplicationPrivate::is_app_closing) {
   376         setFocusSafely(false);
   376         QT_TRY {
       
   377             setFocusSafely(false);
       
   378         } QT_CATCH(const std::exception&) {
       
   379             // ignore exceptions, nothing can be done
       
   380         }
       
   381     }
   377     S60->appUi()->RemoveFromStack(this);
   382     S60->appUi()->RemoveFromStack(this);
   378     delete m_longTapDetector;
   383     delete m_longTapDetector;
   379 }
   384 }
   380 
   385 
   381 void QSymbianControl::setWidget(QWidget *w)
   386 void QSymbianControl::setWidget(QWidget *w)
   987                 cbaFlags &= ~EAknCBAFlagRespondWhenInvisible;
   992                 cbaFlags &= ~EAknCBAFlagRespondWhenInvisible;
   988             cba->SetButtonGroupFlags(cbaFlags);
   993             cba->SetButtonGroupFlags(cbaFlags);
   989         }
   994         }
   990 #endif
   995 #endif
   991     } else if (QApplication::activeWindow() == qwidget->window()) {
   996     } else if (QApplication::activeWindow() == qwidget->window()) {
   992         if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog()) {
   997         if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
   993             QWidget *fw = QApplication::focusWidget();
   998             QWidget *fw = QApplication::focusWidget();
   994             if (fw) {
   999             if (fw) {
   995                 QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
  1000                 QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
   996                 QCoreApplication::sendEvent(fw, &event);
  1001                 QCoreApplication::sendEvent(fw, &event);
   997             }
  1002             }
  1237         S60->hasTouchscreen = true;
  1242         S60->hasTouchscreen = true;
  1238         S60->virtualMouseRequired = false;
  1243         S60->virtualMouseRequired = false;
  1239     }
  1244     }
  1240 
  1245 
  1241     S60->avkonComponentsSupportTransparency = false;
  1246     S60->avkonComponentsSupportTransparency = false;
       
  1247     S60->menuBeingConstructed = false;
  1242 
  1248 
  1243 #ifdef Q_WS_S60
  1249 #ifdef Q_WS_S60
  1244     TUid KCRUidAvkon = { 0x101F876E };
  1250     TUid KCRUidAvkon = { 0x101F876E };
  1245     TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
  1251     TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
  1246 
  1252