Revert "Revert "Add specific condition for back-key handle""
authorJihoon Chung <jihoon.chung@samsung.com>
Tue, 8 Oct 2013 11:52:36 +0000 (11:52 +0000)
committerHoseon LEE <hoseon46.lee@samsung.com>
Mon, 14 Oct 2013 11:35:32 +0000 (20:35 +0900)
  * Note: ewk_view_text_selection_clear() API is now available in RSA webkit.

[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: I7d96d3b2ea38a42e4e8d2746f27137cfcf1bbc94

src/view/webkit/view_logic.cpp

index 2f98736..f1b3397 100644 (file)
@@ -1956,6 +1956,13 @@ void ViewLogic::eaKeyCallback(void* data, Evas_Object* obj, void* eventInfo)
 
     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;