var el = this.$el.find("> .text")[0];
var sel = window.getSelection();
var retVal;
- if (sel.rangeCount >= 1) {
+ if (sel.rangeCount >= 1 && el.childNodes.length > 0) {
+ el = this.$el.find("> .text")[0];
var range = sel.getRangeAt(0);
var start = range.startOffset, end = range.endOffset;
retVal = f();
range.setStart(el.childNodes[0], start);
range.setEnd(el.childNodes[0], end);
sel.addRange(range);
+ } else if (sel.rangeCount >= 1) {
+ retVal = f();
+ el = this.$el.find("> .text")[0];
+ el.focus();
} else {
retVal = f();
sel.removeAllRanges();
var el = this.$el.find("> .text")[0];
var sel = window.getSelection();
var retVal;
- if (sel.rangeCount >= 1) {
+ if (sel.rangeCount >= 1 && el.childNodes.length > 0) {
+ el = this.$el.find("> .text")[0];
var range = sel.getRangeAt(0);
var start = range.startOffset, end = range.endOffset;
retVal = f();
range.setStart(el.childNodes[0], start);
range.setEnd(el.childNodes[0], end);
sel.addRange(range);
+ } else if (sel.rangeCount >= 1) {
+ retVal = f();
+ el = this.$el.find("> .text")[0];
+ el.focus();
} else {
retVal = f();
sel.removeAllRanges();
var el = this.$el.find("> .text")[0];
var sel = window.getSelection();
var retVal;
- if (sel.rangeCount >= 1) {
+ if (sel.rangeCount >= 1 && el.childNodes.length > 0) {
+ el = this.$el.find("> .text")[0];
var range = sel.getRangeAt(0);
var start = range.startOffset, end = range.endOffset;
retVal = f();
range.setStart(el.childNodes[0], start);
range.setEnd(el.childNodes[0], end);
sel.addRange(range);
+ } else if (sel.rangeCount >= 1) {
+ retVal = f();
+ el = this.$el.find("> .text")[0];
+ el.focus();
} else {
retVal = f();
sel.removeAllRanges();