66{
67 if (event->type() == QEvent::KeyPress) {
68 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
69
70 if (m_pressedHomeKey == 0 && m_homeKeys.contains(keyEvent->key()) && !keyEvent->isAutoRepeat()
71 && !m_activationTimer->isRunning()
72 && !m_windowBeingTouched
73 && m_windowLastTouchedTimer->elapsed() >= msecsWithoutTouches) {
74 m_pressedHomeKey = keyEvent->key();
75 m_activationTimer->start();
76 } else if (m_pressedHomeKey != 0 && !m_homeKeys.contains(keyEvent->key())) {
77
78 m_activationTimer->stop();
79 }
80
81 } else if (event->type() == QEvent::KeyRelease) {
82 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
83
84 if (keyEvent->key() == m_pressedHomeKey) {
85 m_pressedHomeKey = 0;
86 }
87
88 } else if (event->type() == QEvent::TouchBegin) {
89
90 m_activationTimer->stop();
91 m_windowBeingTouched = true;
93
94 } else if (event->type() == QEvent::TouchEnd) {
95
96 m_windowBeingTouched = false;
97 m_windowLastTouchedTimer->start();
98
99 QTouchEvent * touchEv = static_cast<QTouchEvent *>(event);
100 if (touchEv && !touchEv->touchPoints().isEmpty()) {
101 const QPointF pos = touchEv->touchPoints().last().screenPos();
103 }
104 }
105}