Disable "open in new window" if Go came up from a new tab.
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 8adba4b..dda1795 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -3901,8 +3901,11 @@
}
intent.putExtra("title", title);
intent.putExtra("url", url);
- intent.putExtra("maxTabsOpen",
- mTabControl.getTabCount() >= TabControl.MAX_TABS);
+ // If this is opening in a new window, then disable opening in a
+ // (different) new window. Also disable it if we have maxed out the
+ // windows.
+ intent.putExtra("disable_new_window", cancelGoPageMeansClose
+ || mTabControl.getTabCount() >= TabControl.MAX_TABS);
intent.putExtra("touch_icon_url", current.getTouchIconUrl());
if (startWithHistory) {
intent.putExtra(CombinedBookmarkHistoryActivity.STARTING_TAB,
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index f070546..c97cc00 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -64,7 +64,7 @@
private View mVerticalList;
private BrowserBookmarksAdapter mBookmarksAdapter;
private static final int BOOKMARKS_SAVE = 1;
- private boolean mMaxTabsOpen;
+ private boolean mDisableNewWindow;
private BookmarkItem mContextHeader;
private AddNewBookmark mAddHeader;
private boolean mCanceled = false;
@@ -197,7 +197,7 @@
// The historycontext menu has no ADD_MENU group.
menu.setGroupVisible(R.id.ADD_MENU, false);
}
- if (mMaxTabsOpen) {
+ if (mDisableNewWindow) {
menu.findItem(R.id.new_window_context_menu_id).setVisible(
false);
}
@@ -227,7 +227,8 @@
if (Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction())) {
mCreateShortcut = true;
}
- mMaxTabsOpen = getIntent().getBooleanExtra("maxTabsOpen", false);
+ mDisableNewWindow = getIntent().getBooleanExtra("disable_new_window",
+ false);
mMostVisited = getIntent().getBooleanExtra("mostVisited", false);
if (mCreateShortcut) {
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index cb8340e..6402422 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -61,7 +61,7 @@
public class BrowserHistoryPage extends ExpandableListActivity {
private HistoryAdapter mAdapter;
private DateSorter mDateSorter;
- private boolean mMaxTabsOpen;
+ private boolean mDisableNewWindow;
private HistoryItem mContextHeader;
private final static String LOGTAG = "browser";
@@ -129,7 +129,8 @@
}
});
}
- mMaxTabsOpen = getIntent().getBooleanExtra("maxTabsOpen", false);
+ mDisableNewWindow = getIntent().getBooleanExtra("disable_new_window",
+ false);
CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
.addListener(mIconReceiver);
@@ -193,9 +194,10 @@
historyItem.copyTo(mContextHeader);
menu.setHeaderView(mContextHeader);
- // Only show open in new tab if we have not maxed out available tabs
- menu.findItem(R.id.new_window_context_menu_id).setVisible(!mMaxTabsOpen);
-
+ // Only show open in new tab if it was not explicitly disabled
+ if (mDisableNewWindow) {
+ menu.findItem(R.id.new_window_context_menu_id).setVisible(false);
+ }
// For a bookmark, provide the option to remove it from bookmarks
if (historyItem.isBookmark()) {
MenuItem item = menu.findItem(R.id.save_to_bookmarks_menu_id);