keyCodeList.removeLast();
}
-#if 0
- clear_finger_slot(false);
- qDebug() << "disable multi-touch";
-#endif
+ /* disable multi-touch mode */
+ if (get_multi_touch_enable() != 0) {
+ set_multi_touch_enable(0);
+
+ qDebug() << "disable multi-touch";
+ }
}
int KeyboardHelper::keyCodeOperation(QKeyEvent *event, int keyCode)
return false;
}
+static void pressFilterMtChecking(QKeyEvent *event) {
+ switch(event->key()) {
+ case Qt::Key_Alt:
+ if (event->modifiers() == (Qt::ControlModifier | Qt::AltModifier)) {
+ set_multi_touch_enable(3);
+ qDebug() << "enable multi-touch mode : 3";
+ }
+
+ break;
+ case Qt::Key_Shift:
+ if (event->modifiers() == (Qt::ControlModifier | Qt::ShiftModifier)) {
+ set_multi_touch_enable(2);
+ qDebug() << "enable multi-touch mode : 2";
+ } else if (event->modifiers() == Qt::ShiftModifier) {
+ set_multi_touch_enable(1);
+ qDebug() << "enable multi-touch mode : 1";
+ }
+
+ break;
+ case Qt::Key_Control:
+ if (event->modifiers() == Qt::ControlModifier) {
+ set_multi_touch_enable(1);
+ qDebug() << "enable multi-touch mode : 1";
+ } else if (event->modifiers() == (Qt::ControlModifier | Qt::ShiftModifier)) {
+ set_multi_touch_enable(2);
+ qDebug() << "enable multi-touch mode : 2";
+ }
+
+ break;
+ default:
+ if (get_multi_touch_enable() != 0) {
+ set_multi_touch_enable(0);
+ qDebug() << "disable multi-touch";
+ }
+
+ break;
+ }
+}
+
void KeyboardHelper::keyPressed(QKeyEvent *event)
{
- int keyCode = event->key();
- qDebug() << "key pressed :" << event->key() << event->text() <<
+ const int keyCode = event->key();
+ qDebug() << "key pressed :" << keyCode << event->text() <<
event->nativeScanCode() << event->modifiers() << event->nativeModifiers();
-#if 0
- /* TODO: multi-touch */
+ /* multi-touch checking */
if (get_emul_max_touch_point() > 1) {
- /* multi-touch checking */
- if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier)) {
- get_emul_multi_touch_state()->multitouch_enable = 2;
- /* add a finger before start the multi-touch processing
- if already exist the pressed touch in display */
-
- qDebug() << "enable multi-touch = mode 2";
- } else if (event->modifiers() == Qt::ShiftModifier ||
- event->modifiers() == Qt::ControlModifier) {
- get_emul_multi_touch_state()->multitouch_enable = 1;
-
- qDebug() << "enable multi-touch = mode 1";
- }
+ pressFilterMtChecking(event);
+ /* fall through */
}
-#endif
/* NumLock or CapsLock key */
if (keyCode == Qt::Key_NumLock) {
}
}
+static void releaseFilterMtChecking(QKeyEvent *event) {
+ switch(event->key()) {
+ case Qt::Key_Alt:
+ if (event->modifiers() == Qt::ControlModifier) {
+ set_multi_touch_enable(1);
+ qDebug() << "enabled multi-touch mode : 3 -> 1";
+ } else {
+ set_multi_touch_enable(0);
+ qDebug() << "disable multi-touch";
+ }
+
+ break;
+ case Qt::Key_Shift:
+ if (event->modifiers() == Qt::ControlModifier) {
+ set_multi_touch_enable(1);
+ qDebug() << "enabled multi-touch mode : 2 -> 1";
+ } else {
+ set_multi_touch_enable(0);
+ qDebug() << "disable multi-touch";
+ }
+
+ break;
+ case Qt::Key_Control:
+ if (event->modifiers() == Qt::ShiftModifier) {
+ set_multi_touch_enable(1);
+ qDebug() << "enabled multi-touch mode : 2 -> 1";
+ } else {
+ set_multi_touch_enable(0);
+ qDebug() << "disable multi-touch";
+ }
+
+ break;
+ default:
+ break;
+ }
+}
+
void KeyboardHelper::keyReleased(QKeyEvent *event)
{
int keyCode = event->key();
qDebug() << "key released :" << event->key() << event->text() <<
event->nativeScanCode() << event->modifiers() << event->nativeModifiers();
-#if 0
- /* TODO: multi-touch */
- if (event->key() == Qt::Key_Shift && event->modifiers() == Qt::ControlModifier) {
- get_emul_multi_touch_state()->multitouch_enable = 1;
-
- qDebug() << "enabled multi-touch = mode 1";
- } else if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control) {
- clear_finger_slot(false);
-
- qDebug() << "disable multi-touch";
+ /* multi-touch checking */
+ if (get_emul_max_touch_point() > 1) {
+ releaseFilterMtChecking(event);
+ /* fall through */
}
-#endif
+ /* NumLock or CapsLock key */
if (keyCode == Qt::Key_NumLock) {
qDebug() << "num_lock state : " << numLockState << "released";
return;