diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 4e753e5d9a1d..565c4642affa 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -3064,6 +3064,11 @@ function BrowserToolboxCustomizeDone(aToolboxChanged) BookmarksToolbar.resizeFunc(null); } + // fix bug 291781 - controller has been lost while removeChild and appendChild + var bm = document.getElementById("bookmarks-menu"); + if (bm) + bm.controllers.appendController(BookmarksMenuController); + // XXX Shouldn't have to do this, but I do window.focus(); } @@ -3460,7 +3465,7 @@ nsBrowserStatusHandler.prototype = if (browser.userTypedClear > 0) browser.userTypedValue = null; - if (!gBrowser.mTabbedMode) + if (!gBrowser.mTabbedMode && aWebProgress.isLoadingDocument) gBrowser.setIcon(gBrowser.mCurrentTab, null); if (findField) @@ -6048,16 +6053,35 @@ var FeedHandler = { updateFeeds: function() { if (!this._feedButton) this._feedButton = document.getElementById("feed-button"); + if (!this._feedMenuitem) + this._feedMenuitem = document.getElementById("addLiveBookmarkMenuitem"); + if (!this._feedMenupopup) + this._feedMenupopup = document.getElementById("addLiveBookmarkMenupopup"); var feeds = gBrowser.mCurrentBrowser.feeds; if (!feeds || feeds.length == 0) { this._feedButton.removeAttribute("feeds"); this._feedButton.setAttribute("tooltiptext", - gNavigatorBundle.getString("feedNoFeeds")); + gNavigatorBundle.getString("feedNoFeeds")); + this._feedMenuitem.setAttribute("disabled", "true"); + this._feedMenupopup.setAttribute("collapsed", "true"); + this._feedMenuitem.removeAttribute("collapsed"); } else { this._feedButton.setAttribute("feeds", "true"); this._feedButton.setAttribute("tooltiptext", - gNavigatorBundle.getString("feedHasFeeds")); + gNavigatorBundle.getString("feedHasFeeds")); + + // check for dupes before we pick which UI to expose + feeds = this.harvestFeeds(feeds); + + if (feeds.length > 1) { + this._feedMenuitem.setAttribute("collapsed", "true"); + this._feedMenupopup.removeAttribute("collapsed"); + } else { + this._feedMenuitem.removeAttribute("disabled"); + this._feedMenuitem.removeAttribute("collapsed"); + this._feedMenupopup.setAttribute("collapsed", "true"); + } } }, diff --git a/toolkit/content/widgets/tabbrowser.xml b/toolkit/content/widgets/tabbrowser.xml index 3cf87a4f6544..2e175040c1a0 100644 --- a/toolkit/content/widgets/tabbrowser.xml +++ b/toolkit/content/widgets/tabbrowser.xml @@ -381,7 +381,8 @@ if (this.mBrowser.userTypedClear > 0) this.mBrowser.userTypedValue = null; - if (aWebProgress.DOMWindow == this.mBrowser.contentWindow) + if (aWebProgress.DOMWindow == this.mBrowser.contentWindow && + aWebProgress.isLoadingDocument) this.mTabBrowser.setIcon(this.mTab, null); if (!this.mBlank && this.mTabBrowser.mCurrentTab == this.mTab) {