Fixed bug #17140: htmlArea RTE: In WebKit, RTE inserts incorrect link if text is...
authorStanislas Rolland <typo3@sjbr.ca>
Thu, 20 Jan 2011 23:36:41 +0000 (23:36 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Thu, 20 Jan 2011 23:36:41 +0000 (23:36 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@10181 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js

index d064b73..835552e 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-01-21  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #17140: htmlArea RTE: In WebKit, RTE inserts incorrect link if text is double-clicked
+
 2011-01-21  Susanne Moog  <typo3@susanne-moog.de>
 
        * Fixed bug #17169: Bug: Wrong color gradients for filter and new button in new page tree
index 472a094..3eddafa 100644 (file)
@@ -1,3 +1,7 @@
+2011-01-20  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #17140: htmlArea RTE: In WebKit, RTE inserts incorrect link if text is double-clicked
+
 2011-01-19  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #17156: htmlArea RTE: Disable Cell merge button in FF when less than two cells are selected
index b08ff07..bf50aed 100644 (file)
@@ -86,7 +86,11 @@ HTMLArea.Editor.prototype.addRangeToSelection = function(selection, range) {
  * Create a range for the current selection
  */
 HTMLArea.Editor.prototype._createRange = function(sel) {
-       if (Ext.isWebKit) {
+       if (Ext.isEmpty(sel)) {
+               return this._doc.createRange();
+       }
+               // Older versions of WebKit did not support getRangeAt
+       if (Ext.isWebKit && !sel.getRangeAt) {
                var range = this._doc.createRange();
                if (typeof(sel) == "undefined") {
                        return range;
@@ -104,9 +108,6 @@ HTMLArea.Editor.prototype._createRange = function(sel) {
                        return range;
                }
        }
-       if (Ext.isEmpty(sel)) {
-               return this._doc.createRange();
-       }
        try {
                return sel.getRangeAt(0);
        } catch(e) {
@@ -219,8 +220,11 @@ HTMLArea.Editor.prototype.getSelectionRanges = function(selection) {
                var selection = this._getSelection();
        }
        var ranges = [];
-       for (var i = selection.rangeCount; --i >= 0;) {
-               ranges.push(selection.getRangeAt(i));
+               // Older versions of WebKit did not support getRangeAt
+       if (selection.getRangeAt) {
+               for (var i = selection.rangeCount; --i >= 0;) {
+                       ranges.push(selection.getRangeAt(i));
+               }
        }
        return ranges;
 };
@@ -231,9 +235,11 @@ HTMLArea.Editor.prototype.setSelectionRanges = function(ranges, selection) {
        if (!selection) {
                var selection = this._getSelection();
        }
-       this.emptySelection(selection);
-       for (var i = ranges.length; --i >= 0;) {
-               this.addRangeToSelection(selection, ranges[i]);
+       if (selection.getRangeAt) {
+               this.emptySelection(selection);
+               for (var i = ranges.length; --i >= 0;) {
+                       this.addRangeToSelection(selection, ranges[i]);
+               }
        }
 };
 /*