Disable context options regarding opening new webview
authorYunchan Cho <yunchan.cho@samsung.com>
Tue, 5 Feb 2013 09:14:38 +0000 (18:14 +0900)
committerYunchan Cho <yunchan.cho@samsung.com>
Thu, 7 Feb 2013 08:08:12 +0000 (17:08 +0900)
[Issue#] N/A
[Problem] After opening new webview by click context menu, there is no way to return previous webview
[Cause] There is no interface to navigate between already created webviews by WRT
[Solution] WRT disables context options of webkit regarding opening new webview, until new interface for this is provided by WRT
[SCMRequest] N/A

Change-Id: I2d69a8d2cca473737b1a0b1ccc6ca30a5ec011c9

src/view/webkit/view_logic.cpp

index 2a4ad92..59ed640 100755 (executable)
@@ -1191,25 +1191,42 @@ void ViewLogic::contextmenuCustomizeCallback(
         }
     } else {
         LogDebug("ContextMenu Enable!!");
-        for (unsigned int idx = 0; idx < ewk_context_menu_item_count(menu);) {
+        int menu_num = ewk_context_menu_item_count(menu);
+        unsigned int idx = 0;
+        do {
             Ewk_Context_Menu_Item* item = ewk_context_menu_nth_item_get(menu, idx);
-            Assert(item);
+            if (!item) {
+                idx++;
+                continue;
+            }
             Ewk_Context_Menu_Item_Tag tag = ewk_context_menu_item_tag_get(item);
 
             switch (tag) {
                 case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_NEW_WINDOW:
                     ewk_context_menu_item_remove(menu, item);
-                    break;
+                    continue;
+
+                case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW:
+                    ewk_context_menu_item_remove(menu, item);
+                    continue;
+
+                case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW:
+                    ewk_context_menu_item_remove(menu, item);
+                    continue;
+
+                case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW:
+                    ewk_context_menu_item_remove(menu, item);
+                    continue;
 
                 case EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB:
                     ewk_context_menu_item_remove(menu, item);
-                    break;
+                    continue;
 
                 default:
                     idx++;
                     break;
             }
-        }
+        } while (idx < menu_num);
     }
 }