summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r--src/com/android/browser/Controller.java41
1 files changed, 39 insertions, 2 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 934f70f..3a68f4b 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -507,8 +507,9 @@ public class Controller
break;
case R.id.open_newtab_context_menu_id:
final Tab parent = mTabControl.getCurrentTab();
- openTab(url, parent,
- !mSettings.openInBackground(), true);
+ boolean privateBrowsing = msg.arg2 == 1;
+ openTab(url, parent != null && privateBrowsing,
+ !mSettings.openInBackground(), true, parent);
break;
case R.id.copy_link_context_menu_id:
copy(url);
@@ -1392,6 +1393,42 @@ public class Controller
});
}
}
+ newTabItem = menu.findItem(R.id.open_newtab_incognito_context_menu_id);
+ newTabItem.setTitle(getSettings().openInBackground()
+ ? R.string.contextmenu_openlink_incognito_newwindow_background
+ : R.string.contextmenu_openlink_incognito_newwindow);
+ newTabItem.setVisible(showNewTab);
+ newTabItem.setVisible(!mTabControl.getCurrentTab().isPrivateBrowsingEnabled());
+ if (showNewTab) {
+ if (WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE == type) {
+ newTabItem.setOnMenuItemClickListener(
+ new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ final HashMap<String, WebView> hrefMap =
+ new HashMap<String, WebView>();
+ hrefMap.put("webview", webview);
+ final Message msg = mHandler.obtainMessage(
+ FOCUS_NODE_HREF,
+ R.id.open_newtab_context_menu_id,
+ 1, hrefMap);
+ webview.requestFocusNodeHref(msg);
+ return true;
+ }
+ });
+ } else {
+ newTabItem.setOnMenuItemClickListener(
+ new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ final Tab parent = mTabControl.getCurrentTab();
+ openTab(extra, parent != null,
+ !mSettings.openInBackground(), true, parent);
+ return true;
+ }
+ });
+ }
+ }
if (type == WebView.HitTestResult.SRC_ANCHOR_TYPE) {
break;
}