- break
- return false
- when KEY_DOWN
- return false
- when KEY_END
- return false
- when KEY_BACKSPACE
- return false
- when KEY_DELETE
- return false
- when KEY_ENTER
- return false
- when KEY_ESCAPE
- return false
- when KEY_HOME
- return false
- when KEY_INSERT
- return false
- when KEY_PAGE_UP
- return false
- when KEY_PAGE_DOWN
- return false
- when KEY_TAB
- return false
- @idoc.body.onkeypress = (e) =>
- return if e.ctrlKey
- return false if ignore_key_codes[e.keyCode]?
- return false if control_key_codes[e.keyCode]? # handled in keydown
- char = e.charCode ? e.keyCode
- if char and @cursor?
- char = String.fromCharCode char
- if @cursor[1] is 0
- @cursor[0].text = char + @cursor[0].text
- else if @cursor[1] is @cursor[0].text.length - 1
- @cursor[0].text += char
- else
- @cursor[0].text =
- @cursor[0].text.substr(0, @cursor[1]) +
- char +
- @cursor[0].text.substr(@cursor[1])
- @cursor[0].el.nodeValue = @cursor[0].text
- @move_cursor [@cursor[0], @cursor[1] + 1]
- return false
- if options.stylesheet # TODO test this
- istyle = @idoc.createElement 'style'
- istyle.setAttribute 'src', options.stylesheet
- @idoc.head.appendChild istyle
- icss = @idoc.createElement 'style'
- icss.appendChild @idoc.createTextNode css
- @idoc.head.appendChild icss
- @load_html @in_el.value
+ else
+ for c in @tree
+ new_cursor = find_prev_cursor_position @tree, c, -1
+ if new_cursor?
+ @move_cursor new_cursor
+ break
+ return false
+ when KEY_DOWN
+ return false
+ when KEY_END
+ return false
+ when KEY_BACKSPACE
+ return false
+ when KEY_DELETE
+ return false
+ when KEY_ENTER
+ return false
+ when KEY_ESCAPE
+ return false
+ when KEY_HOME
+ return false
+ when KEY_INSERT
+ return false
+ when KEY_PAGE_UP
+ return false
+ when KEY_PAGE_DOWN
+ return false
+ when KEY_TAB
+ return false
+ @idoc.body.onkeypress = (e) =>
+ return if e.ctrlKey
+ return false if ignore_key_codes[e.keyCode]?
+ return false if control_key_codes[e.keyCode]? # handled in keydown
+ char = e.charCode ? e.keyCode
+ if char and @cursor?
+ char = String.fromCharCode char
+ if @cursor[1] is 0
+ @cursor[0].text = char + @cursor[0].text
+ else if @cursor[1] is @cursor[0].text.length - 1
+ @cursor[0].text += char
+ else
+ @cursor[0].text =
+ @cursor[0].text.substr(0, @cursor[1]) +
+ char +
+ @cursor[0].text.substr(@cursor[1])
+ @cursor[0].el.nodeValue = @cursor[0].text
+ @move_cursor [@cursor[0], @cursor[1] + 1]
+ return false
+ if options.stylesheet # TODO test this
+ istyle = @idoc.createElement 'style'
+ istyle.setAttribute 'src', options.stylesheet
+ @idoc.head.appendChild istyle
+ icss = @idoc.createElement 'style'
+ icss.appendChild @idoc.createTextNode css
+ @idoc.head.appendChild icss
+ @load_html @in_el.value
+
+ @in_el.parentNode.appendChild @iframe