Skip to content

Commit 4c97ec8

Browse files
author
Oliver Pulges
committed
Update version
1 parent 24aa752 commit 4c97ec8

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

lib/wysihtml/rails/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module Wysihtml
22
module Rails
3-
VERSION = "0.5.0.beta12"
3+
VERSION = "0.5.0.beta13"
44
end
55
end

vendor/assets/javascripts/wysihtml-toolbar.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @license wysihtml v0.5.0-beta12
2+
* @license wysihtml v0.5.0-beta13
33
* https://github.com/Voog/wysihtml
44
*
55
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
1010
*
1111
*/
1212
var wysihtml5 = {
13-
version: "0.5.0-beta12",
13+
version: "0.5.0-beta13",
1414

1515
// namespaces
1616
commands: {},
@@ -405,20 +405,24 @@ var wysihtml5 = {
405405
return all;
406406
};
407407

408+
409+
408410
var normalizeFix = function() {
409411
var f = Node.prototype.normalize;
410412
var nf = function() {
411413
var texts = getTextNodes(this),
412414
s = this.ownerDocument.defaultView.getSelection(),
413415
anode = s.anchorNode,
414416
aoffset = s.anchorOffset,
417+
aelement = anode && anode.nodeType === 1 && anode.childNodes.length > 0 ? anode.childNodes[aoffset] : undefined,
415418
fnode = s.focusNode,
416419
foffset = s.focusOffset,
420+
felement = fnode && fnode.nodeType === 1 && foffset > 0 ? fnode.childNodes[foffset -1] : undefined,
417421
r = this.ownerDocument.createRange(),
418422
prevTxt = texts.shift(),
419423
curText = prevTxt ? texts.shift() : null;
420424

421-
if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING))) {
425+
if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING) && !(anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_CONTAINS))) {
422426
fnode = [anode, anode = fnode][0];
423427
foffset = [aoffset, aoffset = foffset][0];
424428
}
@@ -442,13 +446,20 @@ var wysihtml5 = {
442446
}
443447
}
444448

449+
if (felement) {
450+
foffset = Array.prototype.indexOf.call(felement.parentNode.childNodes, felement) + 1;
451+
}
452+
453+
if (aelement) {
454+
aoffset = Array.prototype.indexOf.call(aelement.parentNode.childNodes, aelement);
455+
}
456+
445457
if (anode && anode.parentNode && fnode && fnode.parentNode) {
446458
r.setStart(anode, aoffset);
447459
r.setEnd(fnode, foffset);
448460
s.removeAllRanges();
449461
s.addRange(r);
450462
}
451-
452463
};
453464
Node.prototype.normalize = nf;
454465
};

vendor/assets/javascripts/wysihtml.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @license wysihtml v0.5.0-beta12
2+
* @license wysihtml v0.5.0-beta13
33
* https://github.com/Voog/wysihtml
44
*
55
* Author: Christopher Blum (https://github.com/tiff)
@@ -10,7 +10,7 @@
1010
*
1111
*/
1212
var wysihtml5 = {
13-
version: "0.5.0-beta12",
13+
version: "0.5.0-beta13",
1414

1515
// namespaces
1616
commands: {},
@@ -405,20 +405,24 @@ var wysihtml5 = {
405405
return all;
406406
};
407407

408+
409+
408410
var normalizeFix = function() {
409411
var f = Node.prototype.normalize;
410412
var nf = function() {
411413
var texts = getTextNodes(this),
412414
s = this.ownerDocument.defaultView.getSelection(),
413415
anode = s.anchorNode,
414416
aoffset = s.anchorOffset,
417+
aelement = anode && anode.nodeType === 1 && anode.childNodes.length > 0 ? anode.childNodes[aoffset] : undefined,
415418
fnode = s.focusNode,
416419
foffset = s.focusOffset,
420+
felement = fnode && fnode.nodeType === 1 && foffset > 0 ? fnode.childNodes[foffset -1] : undefined,
417421
r = this.ownerDocument.createRange(),
418422
prevTxt = texts.shift(),
419423
curText = prevTxt ? texts.shift() : null;
420424

421-
if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING))) {
425+
if ((anode === fnode && foffset < aoffset) || (anode !== fnode && (anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_PRECEDING) && !(anode.compareDocumentPosition(fnode) & Node.DOCUMENT_POSITION_CONTAINS))) {
422426
fnode = [anode, anode = fnode][0];
423427
foffset = [aoffset, aoffset = foffset][0];
424428
}
@@ -442,13 +446,20 @@ var wysihtml5 = {
442446
}
443447
}
444448

449+
if (felement) {
450+
foffset = Array.prototype.indexOf.call(felement.parentNode.childNodes, felement) + 1;
451+
}
452+
453+
if (aelement) {
454+
aoffset = Array.prototype.indexOf.call(aelement.parentNode.childNodes, aelement);
455+
}
456+
445457
if (anode && anode.parentNode && fnode && fnode.parentNode) {
446458
r.setStart(anode, aoffset);
447459
r.setEnd(fnode, foffset);
448460
s.removeAllRanges();
449461
s.addRange(r);
450462
}
451-
452463
};
453464
Node.prototype.normalize = nf;
454465
};

0 commit comments

Comments
 (0)