From 4f433ce0e83a81187042aa968b5fbe1f4823901a Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Thu, 27 Dec 2012 21:01:17 -0800 Subject: [PATCH 1/4] Changing the close icon when the tab is modified --- src/packages/tabs/src/tab.coffee | 20 ++++++++++++++++++++ src/packages/tabs/src/tabs.css | 14 ++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/packages/tabs/src/tab.coffee b/src/packages/tabs/src/tab.coffee index 67935a3d5..7c472fd5c 100644 --- a/src/packages/tabs/src/tab.coffee +++ b/src/packages/tabs/src/tab.coffee @@ -11,6 +11,26 @@ class Tab extends View @updateFileName() @editSession.on 'buffer-path-change.tab', => @updateFileName() + @subscribeToBuffer() + + updateTab: -> + @updateBufferHasModifiedText(@buffer.isModified()) + + subscribeToBuffer: -> + @buffer?.off '.tabs' + @buffer = @editSession.buffer + @buffer.on 'contents-modified.tabs', (e) => @updateBufferHasModifiedText(e.differsFromDisk) + @buffer.on 'after-save.tabs', => @updateTab() + @buffer.on '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..d4d099a95 100644 --- a/src/packages/tabs/src/tabs.css +++ b/src/packages/tabs/src/tabs.css @@ -21,6 +21,20 @@ height: 24px; } +.tab.file-modified .close-icon { + box-shadow: inset 0 1px 2px #333; + background-color: #F9EE98; + top: 8px; + border-radius: 10px; + width: 7px; + height: 7px; + right: 7px; +} + +.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; } From 4fa92c72c2d08a871d5655c1d608331931ced5fb Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Thu, 27 Dec 2012 21:04:18 -0800 Subject: [PATCH 2/4] matching the status-bar modified color to the tab color --- static/status-bar.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; } From 6c66f20d68e8affdc3dfe8e00d59a2543c82a4b0 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Thu, 27 Dec 2012 22:23:08 -0800 Subject: [PATCH 3/4] using `@subscribe` to subscribe to the buffer for garbage collection --- src/packages/tabs/src/tab.coffee | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/packages/tabs/src/tab.coffee b/src/packages/tabs/src/tab.coffee index 7c472fd5c..2d46e09c4 100644 --- a/src/packages/tabs/src/tab.coffee +++ b/src/packages/tabs/src/tab.coffee @@ -17,11 +17,10 @@ class Tab extends View @updateBufferHasModifiedText(@buffer.isModified()) subscribeToBuffer: -> - @buffer?.off '.tabs' @buffer = @editSession.buffer - @buffer.on 'contents-modified.tabs', (e) => @updateBufferHasModifiedText(e.differsFromDisk) - @buffer.on 'after-save.tabs', => @updateTab() - @buffer.on 'git-status-change.tabs', => @updateTab() + @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) -> From c0fc67bb3b50c63e482ffc011e349203beb1e0a5 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Thu, 27 Dec 2012 22:23:21 -0800 Subject: [PATCH 4/4] matching the circle color to the x --- src/packages/tabs/src/tabs.css | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/packages/tabs/src/tabs.css b/src/packages/tabs/src/tabs.css index d4d099a95..458fe74f3 100644 --- a/src/packages/tabs/src/tabs.css +++ b/src/packages/tabs/src/tabs.css @@ -22,13 +22,12 @@ } .tab.file-modified .close-icon { - box-shadow: inset 0 1px 2px #333; - background-color: #F9EE98; - top: 8px; + border: 3px solid #777; + top: 6px; border-radius: 10px; - width: 7px; - height: 7px; - right: 7px; + width: 5px; + height: 5px; + right: 5px; } .tab.file-modified .close-icon:before {