From def6b67c8f095f4bd9bd101ae93f0b3344c8b2ae Mon Sep 17 00:00:00 2001 From: probablycorey Date: Tue, 4 Mar 2014 12:11:33 -0800 Subject: [PATCH] Menu items hide conflicting items when made visible. --- src/browser/application-menu.coffee | 12 ++++++++++++ src/browser/atom-application.coffee | 8 -------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/browser/application-menu.coffee b/src/browser/application-menu.coffee index 665f83b6a..b411551c4 100644 --- a/src/browser/application-menu.coffee +++ b/src/browser/application-menu.coffee @@ -71,16 +71,28 @@ class ApplicationMenu # Toggles Install Update Item showInstallUpdateItem: (visible=true) -> + if visible + @showDownloadingUpdateItem(false) + @showCheckForUpdateItem(false) + if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Restart and Install Update')) item.visible = visible # Toggles Downloading Update Item showDownloadingUpdateItem: (visible=true) -> + if visible + @showInstallUpdateItem(false) + @showCheckForUpdateItem(false) + if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Downloading Update')) item.visible = visible # Toggles Check For Update Item showCheckForUpdateItem: (visible=true) -> + if visible + @showDownloadingUpdateItem(false) + @showInstallUpdateItem(false) + if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Check for Update')) item.visible = visible diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index bdb13b7d3..b4ac6b55a 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -138,25 +138,17 @@ class AtomApplication @applicationMenu.showCheckForUpdateItem(false) autoUpdater.on 'update-not-available', => - @applicationMenu.showDownloadingUpdateItem(false) - @applicationMenu.showInstallUpdateItem(false) @applicationMenu.showCheckForUpdateItem(true) autoUpdater.on 'update-available', => @applicationMenu.showDownloadingUpdateItem(true) - @applicationMenu.showInstallUpdateItem(false) - @applicationMenu.showCheckForUpdateItem(false) autoUpdater.on 'update-downloaded', (event, releaseNotes, releaseName, releaseDate, releaseURL) => atomWindow.sendCommand('window:update-available', [releaseName, releaseNotes]) for atomWindow in @windows - @applicationMenu.showDownloadingUpdateItem(false) @applicationMenu.showInstallUpdateItem(true) - @applicationMenu.showCheckForUpdateItem(false) @updateVersion = releaseName autoUpdater.on 'error', (event, message) => - @applicationMenu.showDownloadingUpdateItem(false) - @applicationMenu.showInstallUpdateItem(false) @applicationMenu.showCheckForUpdateItem(true) # Check for update after Atom has fully started and the menus are created