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];