Compare commits

...

1 Commits

Author SHA1 Message Date
DadaMonad
50fa81d191 fixed focus issue 2015-01-30 17:02:03 +00:00
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 { } 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;

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 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()

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