Dispatch tizenhwkey 'menu' event 99/44999/1 accepted/tizen/mobile/20150804.000143 accepted/tizen/tv/20150804.000153 accepted/tizen/wearable/20150804.000205 submit/tizen/20150803.232230
authorjh5.cho <jh5.cho@samsung.com>
Thu, 30 Jul 2015 09:46:21 +0000 (18:46 +0900)
committerjh5.cho <jh5.cho@samsung.com>
Thu, 30 Jul 2015 09:46:21 +0000 (18:46 +0900)
Change-Id: Iebbce0b1a0d5466482e0fdd635ccb6382fe3892e

src/runtime/web_application.cc

index ac6f4af..52dfc5a 100755 (executable)
@@ -51,6 +51,7 @@ namespace wrt {
 namespace {
 // TODO(sngn.lee) : It should be declare in common header
 const char* kKeyNameBack = "back";
+const char* kKeyNameMenu = "menu";
 
 const char* kConsoleLogEnableKey = "WRT_CONSOLE_LOG_ENABLE";
 const char* kConsoleMessageLogTag = "ConsoleMessage";
@@ -89,6 +90,16 @@ const char* kBackKeyEventScript = \
     "for (var i=0; i < window.frames.length; i++)\n"
     "{ window.frames[i].document.dispatchEvent(__event); }"
     "})()";
+const char* kMenuKeyEventScript = \
+    "(function(){"
+    "var __event = document.createEvent(\"CustomEvent\");\n"
+    "__event.initCustomEvent(\"tizenhwkey\", true, true);\n"
+    "__event.keyName = \"menu\";\n"
+    "document.dispatchEvent(__event);\n"
+    "\n"
+    "for (var i=0; i < window.frames.length; i++)\n"
+    "{ window.frames[i].document.dispatchEvent(__event); }"
+    "})()";
 const char* kFullscreenPrivilege = "http://tizen.org/privilege/fullscreen";
 const char* kFullscreenFeature = "fullscreen";
 const char* kNotificationPrivilege =
@@ -609,6 +620,8 @@ void WebApplication::OnHardwareKey(WebView* view, const std::string& keyname) {
                  true;
   if (enabled && kKeyNameBack == keyname) {
     view->EvalJavascript(kBackKeyEventScript);
+  } else if (enabled && kKeyNameMenu == keyname) {
+    view->EvalJavascript(kMenuKeyEventScript);
   }
 }