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

File diff suppressed because one or more lines are too long

View File

@ -322,20 +322,23 @@ module.exports = function(HB) {
};
} else {
createRange = function(fix) {
var clength, left, right, s;
var clength, edited_element, range, s;
range = {};
s = dom_root.getSelection();
clength = textfield.textContent.length;
left = Math.min(s.anchorOffset, clength);
right = Math.min(s.focusOffset, clength);
range.left = Math.min(s.anchorOffset, clength);
range.right = Math.min(s.focusOffset, clength);
if (fix != null) {
left = fix(left);
right = fix(right);
range.left = fix(range.left);
range.right = fix(range.right);
}
return {
left: left,
right: right,
isReal: true
};
edited_element = s.focusNode;
if (edited_element === textfield || edited_element === textfield.childNodes[0]) {
range.isReal = true;
} else {
range.isReal = false;
}
return range;
};
writeRange = function(range) {
var r, s, textnode;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -315,18 +315,21 @@ module.exports = (HB)->
textfield.value = content
else
createRange = (fix)->
range = {}
s = dom_root.getSelection()
clength = textfield.textContent.length
left = Math.min s.anchorOffset, clength
right = Math.min s.focusOffset, clength
range.left = Math.min s.anchorOffset, clength
range.right = Math.min s.focusOffset, clength
if fix?
left = fix left
right = fix right
{
left: left
right: right
isReal: true
}
range.left = fix range.left
range.right = fix range.right
edited_element = s.focusNode
if edited_element is textfield or edited_element is textfield.childNodes[0]
range.isReal = true
else
range.isReal = false
range
writeRange = (range)->
writeContent word.val()

File diff suppressed because one or more lines are too long

2
y.js

File diff suppressed because one or more lines are too long