Only emit editor-open event once (on first attachment)

This commit is contained in:
Corey Johnson 2012-04-19 18:12:55 -07:00
parent 800f16bb29
commit eaf7ee8ec1
2 changed files with 8 additions and 3 deletions

View File

@ -52,16 +52,19 @@ describe "Editor", ->
expect(newEditor.editSessions[0]).not.toBe(editor.editSessions[0])
describe "editor-open event", ->
it 'triggers an editor-open event when it is added to the DOM', ->
it 'only triggers an editor-open event when it is first added to the DOM', ->
openHandler = jasmine.createSpy('openHandler')
editor.on 'editor-open', openHandler
editor.simulateDomAttachment()
expect(openHandler).toHaveBeenCalled()
[event, eventEditor] = openHandler.argsForCall[0]
expect(eventEditor).toBe editor
openHandler.reset()
editor.simulateDomAttachment()
expect(openHandler).not.toHaveBeenCalled()
describe "text rendering", ->
it "creates a line element for each line in the buffer with the html-escaped text of the line", ->
expect(editor.lines.find('.line').length).toEqual(buffer.numLines())

View File

@ -201,7 +201,9 @@ class Editor extends View
else
@gutter.addClass('drop-shadow')
@on 'attach', =>
@on 'attach', (e) =>
return if @attached
@attached = true
@calculateDimensions()
@hiddenInput.width(@charWidth)
@setMaxLineLength() if @softWrap