Skip to content

Commit 884d82e

Browse files
committed
switching to addEventListener; alpha release
1 parent 1bb5ade commit 884d82e

File tree

2 files changed

+42
-26
lines changed

2 files changed

+42
-26
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mvc-works/codearea",
3-
"version": "0.0.1-a2",
3+
"version": "0.0.1-a3",
44
"description": "Web app scaffold based on Webpack",
55
"main": "lib/codearea.js",
66
"scripts": {

src/codearea.coffee

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ at_line_end = (text, point) ->
8282
false
8383

8484
# tab to indent is neccesary
85-
key_tab = (target) ->
85+
key_tab = (target, event) ->
86+
event.preventDefault()
87+
8688
caret = wrap_text target
8789
# o caret
8890
{all,ar,ac,br,bc} = caret
@@ -112,7 +114,9 @@ key_tab = (target) ->
112114
write_text target, {all,ar,ac,br,bc}
113115

114116
# use shift tab to remove indentation
115-
key_shift_tab = (target) ->
117+
key_shift_tab = (target, event) ->
118+
event.preventDefault()
119+
116120
caret = wrap_text target
117121
{all,ar,ac,br,bc} = caret
118122
if caret.same
@@ -209,7 +213,9 @@ key_ctrl_shift_d = (target) ->
209213
write_text target, {all,ar,ac,br,bc}
210214

211215
# enter only, consider last line and
212-
key_enter = (target) ->
216+
key_enter = (target, event) ->
217+
event.preventDefault()
218+
213219
caret = wrap_text target
214220
{all,ar,ac} = caret
215221
if caret.same
@@ -224,7 +230,8 @@ key_enter = (target) ->
224230
write_text target, {all,ar,ac}
225231

226232
# press backspace at head, last line if empty, delete it
227-
key_backspace = (target) ->
233+
key_backspace = (target, event) ->
234+
228235
caret = wrap_text target
229236
{all,ar,ac} = caret
230237
if caret.same
@@ -233,12 +240,14 @@ key_backspace = (target) ->
233240
if even n then all[ar] = all[ar][...n-2] + all[ar][n..]
234241
else all[ar] = all[ar][...n-1] + all[ar][n..]
235242
ac = n - 2
243+
event.preventDefault()
236244
write_text target, {all,ar,ac}
237245
else if all[ar-1]? and caret.as
238246
if all[ar-1].match /^\s+$/
239247
all = all[...ar-1].concat all[ar..]
240248
ar = ar-1
241249
ac = 0
250+
event.preventDefault()
242251
write_text target, {all,ar,ac}
243252
# o caret.ae
244253
else if all[ar].length>1 and (not caret.ae)
@@ -247,6 +256,7 @@ key_backspace = (target) ->
247256
if pair in ['{}', '()', '[]', '""', "''", '``']
248257
all[ar] = all[ar][...ac-1] + all[ar][ac+1..]
249258
ac -= 1
259+
event.preventDefault()
250260
write_text target, {all,ar,ac}
251261

252262
# ctrl Enter to open a new line with indentation
@@ -307,7 +317,9 @@ key_ctrl_shift_down = (target) ->
307317
write_text target, {all,ar,ac,br,bc}
308318

309319
# left-bracket
310-
key_bracket = (target, bracket) ->
320+
key_bracket = (target, event, bracket) ->
321+
event.preventDefault()
322+
311323
caret = wrap_text target
312324
{all,ac,ar,br,bc} = caret
313325
# o bracket
@@ -318,7 +330,9 @@ key_bracket = (target, bracket) ->
318330
bc += 1
319331
write_text target, {all,ar,ac,br,bc}
320332

321-
key_bracket_close = (target, closer) ->
333+
key_bracket_close = (target, event, closer) ->
334+
event.preventDefault()
335+
322336
caret = wrap_text target
323337
{all,ar,ac} = caret
324338
if caret.same
@@ -335,7 +349,9 @@ key_home = (target) ->
335349
ac = if spaces? then spaces[0].length else 0
336350
write_text target, {all, ar, ac}
337351

338-
key_quote = (target, sign) ->
352+
key_quote = (target, event, sign) ->
353+
event.preventDefault()
354+
339355
caret = wrap_text target
340356
if caret.same
341357
{all, ar, ac} = caret
@@ -356,25 +372,25 @@ key_quote = (target, sign) ->
356372

357373
# new version of map_keys
358374
call_shortcut =
359-
9: (target) -> key_tab target
360-
13: (target) -> key_enter target
361-
8: (target) -> key_backspace target
375+
9: (target, event) -> key_tab target, event
376+
13: (target, event) -> key_enter target, event
377+
8: (target, event) -> key_backspace target, event
362378
36: (target) -> key_home target
363-
219: (target) -> key_bracket target, '[]'
364-
192: (target) -> key_quote target, '`'
365-
# 222: (target) -> key_quote target, "'"
366-
221: (target) -> key_bracket_close target, ']'
367-
'shift 9': (target) -> key_shift_tab target
368-
'shift 57': (target) -> key_bracket target, '()'
369-
'shift 48': (target) -> key_bracket_close target, ')'
370-
'shift 219': (target) -> key_bracket target, '{}'
371-
'shift 221': (target) -> key_bracket_close target, '}'
372-
'shift 222': (target) -> key_quote target, '"'
379+
219: (target, event) -> key_bracket target, event, '[]'
380+
192: (target, event) -> key_quote target, event, '`'
381+
# 222: (target, event) -> key_quote target, event, "'"
382+
221: (target, event) -> key_bracket_close target, event, ']'
383+
'shift 9': (target, event) -> key_shift_tab target, event
384+
'shift 57': (target, event) -> key_bracket target, event, '()'
385+
'shift 48': (target, event) -> key_bracket_close target, event, ')'
386+
'shift 219': (target, event) -> key_bracket target, event, '{}'
387+
'shift 221': (target, event) -> key_bracket_close target, event, '}'
388+
'shift 222': (target, event) -> key_quote target, event, '"'
373389
'ctrl 76': (target) -> key_ctrl_l target
374-
'ctrl 13': (target) -> key_ctrl_enter target
390+
'ctrl 13': (target, event) -> key_ctrl_enter target, event
375391
'ctrl 75': (target) -> key_ctrl_k target
376392
'ctrl 85': (target) -> key_ctrl_u target
377-
'ctrl shift 13': (target) -> key_ctrl_shift_enter target
393+
'ctrl shift 13': (target, event) -> key_ctrl_shift_enter target, event
378394
'ctrl shift 75': (target) -> key_ctrl_shift_k target
379395
'ctrl shift 68': (target) -> key_ctrl_shift_d target
380396
'ctrl shift 38': (target) -> key_ctrl_shift_up target
@@ -399,16 +415,16 @@ exports.codearea = (area) ->
399415
mark+= 'shift ' if e.shiftKey
400416
mark+= String e.keyCode
401417
# o mark
402-
call_shortcut[mark] area if call_shortcut[mark]?
418+
call_shortcut[mark] area, e if call_shortcut[mark]?
403419

404420
area.__codearea__ = handleEvents
405421

406-
area.onkeydown = handleEvents
422+
area.addEventListener 'keydown', handleEvents
407423

408424
exports.teardownCodearea = (area) ->
409425
if not area.__codearea__?
410426
console.warn area, 'is not a textarea'
411427
return
412428

413-
area.onkeydown = null
429+
area.removeEventListner 'keydown', area.__codearea__
414430
area.__codearea__

0 commit comments

Comments
 (0)