hwkey: modified dual keycode handling for HW key
authorGiWoong Kim <giwoong.kim@samsung.com>
Mon, 9 Nov 2015 05:03:42 +0000 (14:03 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Mon, 9 Nov 2015 05:03:42 +0000 (14:03 +0900)
- hold down the HW key for up to 2 seconds: long press
- under the 2 seconds: short press

Change-Id: I7929bf1e53ddeb9c9ac86804cee62f7dc2eb1477
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/menu/contextmenu.cpp
tizen/src/ui/skinkeyitem.cpp

index fa51376772704c71f200230c90e41c2e8e2bd17c..ad71007b2750db84d3c530a4ad7a0fb024d94cc6 100644 (file)
@@ -52,19 +52,23 @@ ContextMenu::ContextMenu(QWidget *parent) : QMenu(parent)
     this->aboutDialog = NULL;
     this->screenshotDialog = NULL;
 
-    advancedMenu = NULL;
-    switchMenu = NULL;
-    scaleMenu = NULL;
-    controllerMenu = NULL;
-
-    actionDetailedInfo = NULL;
-    actionTopMost = NULL;
-    actionShell = NULL;
-    actionControlPanel = NULL;
-    actionScreenShot = NULL;
-    actionAbout = NULL;
-    actionForceClose = NULL;
-    actionClose = NULL;
+    this->advancedMenu = NULL;
+    this->switchMenu = NULL;
+    this->scaleMenu = NULL;
+    this->controllerMenu = NULL;
+
+    this->actionDetailedInfo = NULL;
+    this->actionTopMost = NULL;
+    this->actionShell = NULL;
+    this->actionControlPanel = NULL;
+    this->actionScreenShot = NULL;
+    this->actionAbout = NULL;
+    this->actionForceClose = NULL;
+    this->actionClose = NULL;
+
+    this->switchMapper = NULL;
+    this->scaleMapper = NULL;
+    this->controllerMapper = NULL;
 
     vmName = this->parent->getUiInfo()->getVmName() + " : "
         + QString::number(get_device_serial_number());
index 3204eb637903b5d14577918b81294119cb6fe5e3..cae4c3a8af78d72e5cd7831203da33e400922b36 100644 (file)
@@ -84,6 +84,8 @@ void SkinKeyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
     }
 
     if (hwKey->hasLongPressKeycode() == true) {
+        qDebug() << "dual key pressed";
+
         /* long press checking first */
         longPressTimer->start();
         return;
@@ -108,27 +110,39 @@ void SkinKeyItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
             target, hwKey->getRect(), LayoutForm::normal));
     }
 
-    int keycode = hwKey->getKeycode();
+    const int keycode = hwKey->getKeycode();
 
     if (hwKey->hasLongPressKeycode() == true) {
         if (longPressTimer->remainingTime() <= 0) {
             /* long press */
-            keycode = hwKey->getKeycodeType()->getLongPressKeycode();
-            qDebug() << hwKey->getName() << "key long pressed:" << keycode;
+            qDebug() << "dual key released";
+            return;
         } else {
             /* short press */
             longPressTimer->stop();
 
-           qDebug() << hwKey->getName() << "key short pressed:" << keycode;
+            qDebug() << hwKey->getName() << "key short pressed:" << keycode;
+            do_hw_key_event(KEY_PRESSED, keycode);
         }
-
-        do_hw_key_event(KEY_PRESSED, keycode);
     }
 
     qDebug() << hwKey->getName() << "key released:" << keycode;
     do_hw_key_event(KEY_RELEASED, keycode);
 }
 
+void SkinKeyItem::longPressHook()
+{
+    /* long press detected */
+
+    if (hwKey->hasLongPressKeycode() == true) {
+        const int keycode = hwKey->getKeycodeType()->getLongPressKeycode();
+        qDebug() << hwKey->getName() << "key long pressed:" << keycode;
+        do_hw_key_event(KEY_PRESSED, keycode);
+        qDebug() << hwKey->getName() << "key released:" << keycode;
+        do_hw_key_event(KEY_RELEASED, keycode);
+    }
+}
+
 /* override */
 void SkinKeyItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
 {
@@ -165,13 +179,6 @@ void SkinKeyItem::paint(QPainter *painter,
     }
 }
 
-void SkinKeyItem::longPressHook()
-{
-    qDebug("key long press detected");
-
-    /* do nothing */
-}
-
 SkinKeyItem::~SkinKeyItem()
 {
     if (longPressTimer) {