fixed focus issue

This commit is contained in:
DadaMonad
2015-01-30 17:02:03 +00:00
parent 93e75e0111
commit 50fa81d191
8 changed files with 84 additions and 66 deletions
File diff suppressed because one or more lines are too long
+14 -11
View File
File diff suppressed because one or more lines are too long
+13 -10
View File
@@ -322,20 +322,23 @@ module.exports = function(HB) {
}; };
} else { } else {
createRange = function(fix) { createRange = function(fix) {
var clength, left, right, s; var clength, edited_element, range, s;
range = {};
s = dom_root.getSelection(); s = dom_root.getSelection();
clength = textfield.textContent.length; clength = textfield.textContent.length;
left = Math.min(s.anchorOffset, clength); range.left = Math.min(s.anchorOffset, clength);
right = Math.min(s.focusOffset, clength); range.right = Math.min(s.focusOffset, clength);
if (fix != null) { if (fix != null) {
left = fix(left); range.left = fix(range.left);
right = fix(right); range.right = fix(range.right);
} }
return { edited_element = s.focusNode;
left: left, if (edited_element === textfield || edited_element === textfield.childNodes[0]) {
right: right, range.isReal = true;
isReal: true } else {
}; range.isReal = false;
}
return range;
}; };
writeRange = function(range) { writeRange = function(range) {
var r, s, textnode; var r, s, textnode;
+14 -11
View File
File diff suppressed because one or more lines are too long
+14 -11
View File
File diff suppressed because one or more lines are too long
+12 -9
View File
@@ -315,18 +315,21 @@ module.exports = (HB)->
textfield.value = content textfield.value = content
else else
createRange = (fix)-> createRange = (fix)->
range = {}
s = dom_root.getSelection() s = dom_root.getSelection()
clength = textfield.textContent.length clength = textfield.textContent.length
left = Math.min s.anchorOffset, clength range.left = Math.min s.anchorOffset, clength
right = Math.min s.focusOffset, clength range.right = Math.min s.focusOffset, clength
if fix? if fix?
left = fix left range.left = fix range.left
right = fix right range.right = fix range.right
{
left: left edited_element = s.focusNode
right: right if edited_element is textfield or edited_element is textfield.childNodes[0]
isReal: true range.isReal = true
} else
range.isReal = false
range
writeRange = (range)-> writeRange = (range)->
writeContent word.val() writeContent word.val()
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long