From 230f40bf3eb359f3352b86efc6d8086021fa5c77 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 30 Mar 2012 15:15:20 -0700 Subject: [PATCH] Window title is set to active editor's buffer path. --- spec/atom/root-view-spec.coffee | 16 ++++++++++++++++ src/atom/editor.coffee | 4 ++-- src/atom/root-view.coffee | 16 +++++++++++++--- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/spec/atom/root-view-spec.coffee b/spec/atom/root-view-spec.coffee index adcb6632c..ac6dce459 100644 --- a/spec/atom/root-view-spec.coffee +++ b/spec/atom/root-view-spec.coffee @@ -2,6 +2,7 @@ $ = require 'jquery' fs = require 'fs' RootView = require 'root-view' Buffer = require 'buffer' +Editor = require 'editor' describe "RootView", -> rootView = null @@ -350,3 +351,18 @@ describe "RootView", -> rootView.trigger(event) expect(commandHandler).toHaveBeenCalled() + describe "document.title", -> + it "is set to activeEditor's buffer path", -> + expect(document.title).toBe url + + it "only listens to focused editors path changes", -> + editor1 = rootView.activeEditor() + expect(document.title).toBe url + + editor2 = rootView.activeEditor().splitLeft() + editor2.setBuffer(new Buffer("second.txt")) + editor2.focus() + expect(document.title).toBe "second.txt" + + editor1.buffer.setPath("should-not-be-title.txt") + expect(document.title).toBe "second.txt" diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index 24a9e8f63..6b2bda92a 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -220,7 +220,6 @@ class Editor extends View @trigger 'buffer-path-change' @buffer.on "path-change.editor#{@id}", => @trigger 'buffer-path-change' - document.title = @buffer.getPath() @renderer = new Renderer(@buffer) @renderLines() @gutter.renderLineNumbers() @@ -328,7 +327,6 @@ class Editor extends View if not @buffer.getPath() path = $native.saveDialog() return if not path - document.title = path @buffer.saveAs(path) else @buffer.save() @@ -463,8 +461,10 @@ class Editor extends View editor = new Editor({@buffer}) editor.setCursorScreenPosition(@getCursorScreenPosition()) + this[insertMethod](editor) @parents('#root-view').view().adjustSplitPanes() + editor remove: (selector, keepData) -> return super if keepData diff --git a/src/atom/root-view.coffee b/src/atom/root-view.coffee index 7589bfa92..8ab67fb83 100644 --- a/src/atom/root-view.coffee +++ b/src/atom/root-view.coffee @@ -59,6 +59,12 @@ class RootView extends View _.remove(@editors, editor) @editors.push(editor) + @setTitleToActiveEditorPath() + + editor.on 'buffer-path-change.root-view', (event) => + e = $(event.target).view() + @setTitleToActiveEditorPath() + editorRemoved: (editor) -> if @panes.containsElement _.remove(@editors, editor) @@ -68,13 +74,17 @@ class RootView extends View else window.close() + setTitleToActiveEditorPath: -> + document.title = @activeEditor().buffer.path + activeEditor: -> if @editors.length _.last(@editors) else - new Editor() - .appendTo(@panes) - .focus() + editor = new Editor() + @editors.push(editor) + editor.appendTo(@panes) + editor.focus() adjustSplitPanes: (element = @panes.children(':first'))-> if element.hasClass('row')