Fixed bug #12597: htmlArea RTE: cursor position is not restored by undo/redo operatio...
authorStanislas Rolland <typo3@sjbr.ca>
Sun, 15 Nov 2009 16:24:48 +0000 (16:24 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Sun, 15 Nov 2009 16:24:48 +0000 (16:24 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@6416 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js
typo3/sysext/rtehtmlarea/htmlarea/plugins/UndoRedo/undo-redo.js

index dc9c680..c2e478b 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-15  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #12597: htmlArea RTE: cursor position is not restored by undo/redo operations in Opera
+
 2009-11-14  Francois Suter  <francois@typo3.org>
 
        * Fixed bug #12464: Reports: Sorting of status collections wrongly relied on localized strings
index ce0b1af..7c406af 100644 (file)
@@ -1,3 +1,7 @@
+2009-11-15  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Fixed bug #12597: htmlArea RTE: cursor position is not restored by undo/redo operations in Opera
+
 2009-11-12  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #4670: htmlArea RTE: Problem when cutting pasting links within table cells or list items
index bff0226..ede6326 100644 (file)
@@ -64,6 +64,8 @@ HTMLArea = function(textarea, config) {
  */
 HTMLArea.agt = navigator.userAgent.toLowerCase();
 HTMLArea.is_opera  = (HTMLArea.agt.indexOf("opera") != -1);
+// Some operations require bug fixes provided by Opera 10 (Presto 2.2)
+HTMLArea.is_opera9 = HTMLArea.is_opera && HTMLArea.agt.indexOf("Presto/2.1") != -1;
 HTMLArea.is_ie = (HTMLArea.agt.indexOf("msie") != -1) && !HTMLArea.is_opera;
 HTMLArea.is_safari = (HTMLArea.agt.indexOf("webkit") != -1);
 HTMLArea.is_gecko  = (navigator.product == "Gecko") || HTMLArea.is_opera;
index 312f194..16ab5b0 100644 (file)
@@ -168,7 +168,7 @@ UndoRedo = HTMLArea.Plugin.extend({
                        // Insert a bookmark
                if (this.editor.getMode() == "wysiwyg" && this.editor.isEditable()) {
                        var selection = this.editor._getSelection();
-                       if ((HTMLArea.is_gecko && !HTMLArea.is_opera) || (HTMLArea.is_ie && selection.type.toLowerCase() != "control")) {
+                       if ((HTMLArea.is_gecko && !HTMLArea.is_opera9) || (HTMLArea.is_ie && selection.type.toLowerCase() != "control")) {
                                        // Catch error in FF when the selection contains no usable range
                                try {
                                                // Work around IE8 bug: can't create a range correctly if the selection is empty and the focus is not on the editor window