         // No tab
         guard let tab = tabManager.selectedTab else {
             navigationToolbar.updateMiddleButtonState(.search)
+            currentMiddleButtonState = .search
             return
         }
         
         // Tab with starting page
         if tab.isURLStartingPage {
             navigationToolbar.updateMiddleButtonState(.search)
+            currentMiddleButtonState = .search
             return
         }
         
         let state: MiddleButtonState = shouldShowNewTabButton ? .newTab : (isLoading ? .stop : .reload)
         navigationToolbar.updateMiddleButtonState(state)
+        currentMiddleButtonState = state
     }
 
     override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {

            toolbar?.applyUIMode(isPrivate: tabManager.selectedTab?.isPrivate ?? false)
            toolbar?.applyTheme()
            toolbar?.addNewTabButton.isHidden = true
            updateTabCountUsingTabManager(self.tabManager)
        }


    func updateToolbarStateForTraitCollection(_ newCollection: UITraitCollection, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator? = nil) {
        let showToolbar = shouldShowFooterForTraitCollection(newCollection)
        let showTopTabs = shouldShowTopTabsForTraitCollection(newCollection)
        let shouldShowNewTabButton = profile.prefs.boolForKey(PrefsKeys.ShowNewTabToolbarButton) ?? (newTabUserResearch?.newTabState ?? false)
        
        urlBar.topTabsIsShowing = showTopTabs
        urlBar.setShowToolbar(!showToolbar)
        toolbar?.addNewTabButton.isHidden = showToolbar
