fixing firefox issues
This commit is contained in:
parent
b39e9d6450
commit
f23bb36635
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -184,7 +184,7 @@ module.exports = (HB)->
|
|||||||
break
|
break
|
||||||
d = (new types.Delete undefined, o).execute()
|
d = (new types.Delete undefined, o).execute()
|
||||||
o = o.next_cl
|
o = o.next_cl
|
||||||
while (not (o instanceof types.Delimiter)) or o.isDeleted()
|
while (not (o instanceof types.Delimiter)) and o.isDeleted()
|
||||||
o = o.next_cl
|
o = o.next_cl
|
||||||
delete_ops.push d._encode()
|
delete_ops.push d._encode()
|
||||||
@
|
@
|
||||||
@ -338,7 +338,7 @@ module.exports = (HB)->
|
|||||||
if range.right > textnode.length
|
if range.right > textnode.length
|
||||||
range.right = textnode.length
|
range.right = textnode.length
|
||||||
range.left = Math.min range.left, range.right
|
range.left = Math.min range.left, range.right
|
||||||
r = new Range()
|
r = document.createRange()
|
||||||
r.setStart(textnode, range.left)
|
r.setStart(textnode, range.left)
|
||||||
r.setEnd(textnode, range.right)
|
r.setEnd(textnode, range.right)
|
||||||
s = window.getSelection()
|
s = window.getSelection()
|
||||||
@ -381,11 +381,11 @@ module.exports = (HB)->
|
|||||||
|
|
||||||
# consume all text-insert changes.
|
# consume all text-insert changes.
|
||||||
textfield.onkeypress = (event)->
|
textfield.onkeypress = (event)->
|
||||||
creator_token = true
|
|
||||||
if word.is_deleted
|
if word.is_deleted
|
||||||
# if word is deleted, do not do anything ever again
|
# if word is deleted, do not do anything ever again
|
||||||
textfield.onkeypress = null
|
textfield.onkeypress = null
|
||||||
return true
|
return true
|
||||||
|
creator_token = true
|
||||||
char = null
|
char = null
|
||||||
if event.key?
|
if event.key?
|
||||||
if event.charCode is 32
|
if event.charCode is 32
|
||||||
@ -396,7 +396,9 @@ module.exports = (HB)->
|
|||||||
char = event.key
|
char = event.key
|
||||||
else
|
else
|
||||||
char = window.String.fromCharCode event.keyCode
|
char = window.String.fromCharCode event.keyCode
|
||||||
if char.length > 0
|
if char.length > 1
|
||||||
|
return true
|
||||||
|
else if char.length > 0
|
||||||
r = createRange()
|
r = createRange()
|
||||||
pos = Math.min r.left, r.right
|
pos = Math.min r.left, r.right
|
||||||
diff = Math.abs(r.right - r.left)
|
diff = Math.abs(r.right - r.left)
|
||||||
@ -405,10 +407,10 @@ module.exports = (HB)->
|
|||||||
r.left = pos + char.length
|
r.left = pos + char.length
|
||||||
r.right = r.left
|
r.right = r.left
|
||||||
writeRange r
|
writeRange r
|
||||||
event.preventDefault()
|
|
||||||
else
|
event.preventDefault()
|
||||||
event.preventDefault()
|
|
||||||
creator_token = false
|
creator_token = false
|
||||||
|
false
|
||||||
|
|
||||||
textfield.onpaste = (event)->
|
textfield.onpaste = (event)->
|
||||||
if word.is_deleted
|
if word.is_deleted
|
||||||
@ -437,7 +439,7 @@ module.exports = (HB)->
|
|||||||
textfield.onkeydown = null
|
textfield.onkeydown = null
|
||||||
return true
|
return true
|
||||||
r = createRange()
|
r = createRange()
|
||||||
pos = Math.min r.left, r.right
|
pos = Math.min(r.left, r.right, word.val().length)
|
||||||
diff = Math.abs(r.left - r.right)
|
diff = Math.abs(r.left - r.right)
|
||||||
if event.keyCode? and event.keyCode is 8 # Backspace
|
if event.keyCode? and event.keyCode is 8 # Backspace
|
||||||
if diff > 0
|
if diff > 0
|
||||||
@ -447,10 +449,7 @@ module.exports = (HB)->
|
|||||||
writeRange r
|
writeRange r
|
||||||
else
|
else
|
||||||
if event.ctrlKey? and event.ctrlKey
|
if event.ctrlKey? and event.ctrlKey
|
||||||
if textfield.value?
|
val = word.val()
|
||||||
val = textfield.value
|
|
||||||
else
|
|
||||||
val = textfield.textContent
|
|
||||||
new_pos = pos
|
new_pos = pos
|
||||||
del_length = 0
|
del_length = 0
|
||||||
if pos > 0
|
if pos > 0
|
||||||
@ -470,6 +469,8 @@ module.exports = (HB)->
|
|||||||
r.right = pos-1
|
r.right = pos-1
|
||||||
writeRange r
|
writeRange r
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
creator_token = false
|
||||||
|
return false
|
||||||
else if event.keyCode? and event.keyCode is 46 # Delete
|
else if event.keyCode? and event.keyCode is 46 # Delete
|
||||||
if diff > 0
|
if diff > 0
|
||||||
word.delete pos, diff
|
word.delete pos, diff
|
||||||
@ -481,8 +482,12 @@ module.exports = (HB)->
|
|||||||
r.left = pos
|
r.left = pos
|
||||||
r.right = pos
|
r.right = pos
|
||||||
writeRange r
|
writeRange r
|
||||||
creator_token = false
|
event.preventDefault()
|
||||||
true
|
creator_token = false
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
creator_token = false
|
||||||
|
true
|
||||||
|
|
||||||
#
|
#
|
||||||
# @private
|
# @private
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user