src/gui/kernel/qapplication_s60.cpp
branchRCL_3
changeset 14 c0432d11811c
parent 13 cc75c76972ee
child 17 4b6ee5efea19
equal deleted inserted replaced
13:cc75c76972ee 14:c0432d11811c
    71 #  include "qinputcontext.h"
    71 #  include "qinputcontext.h"
    72 #  include <private/qcoefepinputcontext_p.h>
    72 #  include <private/qcoefepinputcontext_p.h>
    73 # endif
    73 # endif
    74 # include <private/qs60mainapplication_p.h>
    74 # include <private/qs60mainapplication_p.h>
    75 # include <centralrepository.h>
    75 # include <centralrepository.h>
       
    76 # include "qs60mainappui.h"
    76 #endif
    77 #endif
    77 
    78 
    78 #include "private/qstylesheetstyle_p.h"
    79 #include "private/qstylesheetstyle_p.h"
    79 
    80 
    80 #include <hal.h>
    81 #include <hal.h>
   370 
   371 
   371 QSymbianControl::~QSymbianControl()
   372 QSymbianControl::~QSymbianControl()
   372 {
   373 {
   373     if (S60->curWin == this)
   374     if (S60->curWin == this)
   374         S60->curWin = 0;
   375         S60->curWin = 0;
   375     if (!QApplicationPrivate::is_app_closing)
   376     if (!QApplicationPrivate::is_app_closing) {
   376         setFocusSafely(false);
   377         QT_TRY {
       
   378             setFocusSafely(false);
       
   379         } QT_CATCH(const std::exception&) {
       
   380             // ignore exceptions, nothing can be done
       
   381         }
       
   382     }
   377     S60->appUi()->RemoveFromStack(this);
   383     S60->appUi()->RemoveFromStack(this);
   378     delete m_longTapDetector;
   384     delete m_longTapDetector;
   379 }
   385 }
   380 
   386 
   381 void QSymbianControl::setWidget(QWidget *w)
   387 void QSymbianControl::setWidget(QWidget *w)
   531         qt_symbian_move_cursor_sprite();
   537         qt_symbian_move_cursor_sprite();
   532 #endif
   538 #endif
   533 
   539 
   534     sendMouseEvent(receiver, type, globalPos, button, modifiers);
   540     sendMouseEvent(receiver, type, globalPos, button, modifiers);
   535 }
   541 }
       
   542 
       
   543 #ifdef Q_WS_S60
       
   544 void QSymbianControl::HandleStatusPaneSizeChange()
       
   545 {
       
   546     QS60MainAppUi *s60AppUi = static_cast<QS60MainAppUi *>(S60->appUi());
       
   547     s60AppUi->HandleStatusPaneSizeChange();
       
   548 }
       
   549 #endif
   536 
   550 
   537 void QSymbianControl::sendMouseEvent(
   551 void QSymbianControl::sendMouseEvent(
   538         QWidget *receiver,
   552         QWidget *receiver,
   539         QEvent::Type type,
   553         QEvent::Type type,
   540         const QPoint &globalPos,
   554         const QPoint &globalPos,
   987                 cbaFlags &= ~EAknCBAFlagRespondWhenInvisible;
  1001                 cbaFlags &= ~EAknCBAFlagRespondWhenInvisible;
   988             cba->SetButtonGroupFlags(cbaFlags);
  1002             cba->SetButtonGroupFlags(cbaFlags);
   989         }
  1003         }
   990 #endif
  1004 #endif
   991     } else if (QApplication::activeWindow() == qwidget->window()) {
  1005     } else if (QApplication::activeWindow() == qwidget->window()) {
   992         if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog()) {
  1006         if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
   993             QWidget *fw = QApplication::focusWidget();
  1007             QWidget *fw = QApplication::focusWidget();
   994             if (fw) {
  1008             if (fw) {
   995                 QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
  1009                 QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
   996                 QCoreApplication::sendEvent(fw, &event);
  1010                 QCoreApplication::sendEvent(fw, &event);
   997             }
  1011             }
  1237         S60->hasTouchscreen = true;
  1251         S60->hasTouchscreen = true;
  1238         S60->virtualMouseRequired = false;
  1252         S60->virtualMouseRequired = false;
  1239     }
  1253     }
  1240 
  1254 
  1241     S60->avkonComponentsSupportTransparency = false;
  1255     S60->avkonComponentsSupportTransparency = false;
       
  1256     S60->menuBeingConstructed = false;
  1242 
  1257 
  1243 #ifdef Q_WS_S60
  1258 #ifdef Q_WS_S60
  1244     TUid KCRUidAvkon = { 0x101F876E };
  1259     TUid KCRUidAvkon = { 0x101F876E };
  1245     TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
  1260     TUint32 KAknAvkonTransparencyEnabled = 0x0000000D;
  1246 
  1261