diff --git a/src/packages/tabs/src/tab.coffee b/src/packages/tabs/src/tab.coffee index 67935a3d5..2d46e09c4 100644 --- a/src/packages/tabs/src/tab.coffee +++ b/src/packages/tabs/src/tab.coffee @@ -11,6 +11,25 @@ class Tab extends View @updateFileName() @editSession.on 'buffer-path-change.tab', => @updateFileName() + @subscribeToBuffer() + + updateTab: -> + @updateBufferHasModifiedText(@buffer.isModified()) + + subscribeToBuffer: -> + @buffer = @editSession.buffer + @subscribe @buffer, 'contents-modified.tabs', (e) => @updateBufferHasModifiedText(e.differsFromDisk) + @subscribe @buffer, 'after-save.tabs', => @updateTab() + @subscribe @buffer, 'git-status-change.tabs', => @updateTab() + @updateTab() + + updateBufferHasModifiedText: (differsFromDisk) -> + if differsFromDisk + @toggleClass('file-modified') unless @isModified + @isModified = true + else + @removeClass('file-modified') if @isModified + @isModified = false updateFileName: -> @fileName.text(@editSession.buffer.getBaseName() ? 'untitled') diff --git a/src/packages/tabs/src/tabs.css b/src/packages/tabs/src/tabs.css index ba9b60995..458fe74f3 100644 --- a/src/packages/tabs/src/tabs.css +++ b/src/packages/tabs/src/tabs.css @@ -21,6 +21,19 @@ height: 24px; } +.tab.file-modified .close-icon { + border: 3px solid #777; + top: 6px; + border-radius: 10px; + width: 5px; + height: 5px; + right: 5px; +} + +.tab.file-modified .close-icon:before { + content: ""; +} + .tab:first-child { box-shadow: inset 0 0 5px #383838, 0 1px 0 #585858, inset -1px 0 0 #4a4a4a; } diff --git a/static/status-bar.css b/static/status-bar.css index 09ea8bb29..457920340 100644 --- a/static/status-bar.css +++ b/static/status-bar.css @@ -43,7 +43,7 @@ } .status-bar .git-status.octicons.modified-status-icon { - color: #f78a46; + color: #F9EE98; display: inline-block; }