Add specific condition for back-key handle
authorJihoon Chung <jihoon.chung@samsaung.com>
Thu, 26 Sep 2013 10:35:30 +0000 (19:35 +0900)
committerHoseon LEE <hoseon46.lee@samsung.com>
Mon, 14 Oct 2013 11:17:42 +0000 (20:17 +0900)
[Issue#]     P130829-05787
[Problem]    Long press on the text to enter text-selection mode.
             Back-key is working to history back or send tizenhwkey event to Application even current mode is text-selection mode.
[Cause]      Elementary is called back-key callback both webkit and wrt.
[Solution]   WRT calls "ewk_view_text_selection_clear" before handle back-key.
             If return value is "EINA_TRUE", back-key is handled by webkit.
             As back-key event is handled by webkit, WRT doens't need to handle back-key.
             In case of return value is "EINA_FALSE", WRT should handle back-key.
             History back or dispatch tizenhwkey event to application.
[SCMRequest] N/A

Change-Id: I3ecea8ae5c3aaec71fdd07b86b6df49e70dae500

src/view/webkit/view_logic.cpp

index 3a3d750..64bc056 100644 (file)
@@ -1950,6 +1950,13 @@ void ViewLogic::eaKeyCallback(void* data, Evas_Object* obj, void* eventInfo)
 
     std::string keyName;
     if (keyType == EA_CALLBACK_BACK) {
 
     std::string keyName;
     if (keyType == EA_CALLBACK_BACK) {
+        Assert(obj);
+        // Call text selection clear API
+        // In case of current state is selection mode,
+        // application doesn't need to handle back key
+        if (EINA_TRUE == ewk_view_text_selection_clear(obj)) {
+            return;
+        }
         keyName = KeyName::BACK;
     } else if (keyType == EA_CALLBACK_MORE) {
         keyName = KeyName::MENU;
         keyName = KeyName::BACK;
     } else if (keyType == EA_CALLBACK_MORE) {
         keyName = KeyName::MENU;