From b23296c5287e03aedbdc522c736f3e10cdb6d3c6 Mon Sep 17 00:00:00 2001 From: "joshmoz%gmail.com" Date: Sat, 20 Nov 2004 09:47:12 +0000 Subject: [PATCH] fix bug 248720 - tabs do not change properly to reflect a new tab set. sr=pinkerton git-svn-id: svn://10.0.0.236/trunk@165539 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/camino/src/application/MainController.mm | 2 +- mozilla/camino/src/browser/BrowserWindowController.h | 1 + .../camino/src/browser/BrowserWindowController.mm | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mozilla/camino/src/application/MainController.mm b/mozilla/camino/src/application/MainController.mm index b086e8801dd..6b59ff39923 100644 --- a/mozilla/camino/src/application/MainController.mm +++ b/mozilla/camino/src/application/MainController.mm @@ -404,7 +404,7 @@ const int kReuseWindowOnAE = 2; else if (openInNewTab) [browserWindowController openURLArray:[(BookmarkFolder *)item childURLs] replaceExistingTabs:NO]; else - [browserWindowController openURLArray:[(BookmarkFolder *)item childURLs] replaceExistingTabs:YES]; + [browserWindowController openURLArrayReplacingTabs:[(BookmarkFolder *)item childURLs] closeExtraTabs:[item isGroup]]; } } diff --git a/mozilla/camino/src/browser/BrowserWindowController.h b/mozilla/camino/src/browser/BrowserWindowController.h index 7e39bf2b780..d79719ba7be 100644 --- a/mozilla/camino/src/browser/BrowserWindowController.h +++ b/mozilla/camino/src/browser/BrowserWindowController.h @@ -286,6 +286,7 @@ typedef enum - (void)openNewTabWithURL: (NSString*)aURLSpec referrer: (NSString*)aReferrer loadInBackground: (BOOL)aLoadInBG; - (void)openURLArray:(NSArray*)urlArray replaceExistingTabs:(BOOL)replaceExisting; +- (void)openURLArrayReplacingTabs:(NSArray*)urlArray closeExtraTabs:(BOOL)closeExtra; -(BrowserTabViewItem*)createNewTabItem; diff --git a/mozilla/camino/src/browser/BrowserWindowController.mm b/mozilla/camino/src/browser/BrowserWindowController.mm index edad463a619..dccf5004c9a 100644 --- a/mozilla/camino/src/browser/BrowserWindowController.mm +++ b/mozilla/camino/src/browser/BrowserWindowController.mm @@ -2571,6 +2571,18 @@ enum BWCOpenDest { [mTabBrowser selectTabViewItemAtIndex:replaceExisting ? 0 : curNumTabs]; } +-(void) openURLArrayReplacingTabs:(NSArray*)urlArray closeExtraTabs:(BOOL)closeExtra +{ + [self openURLArray:urlArray replaceExistingTabs:YES]; + if (closeExtra) { + int closeIndex = [urlArray count]; + int closeCount = [mTabBrowser numberOfTabViewItems] - closeIndex; + for (int i = 0; i < closeCount; i++) { + [[mTabBrowser tabViewItemAtIndex:closeIndex] closeTab]; + } + } +} + -(BrowserTabViewItem*)createNewTabItem { BrowserTabViewItem* newTab = [BrowserTabView makeNewTabItem];