Fixed issue #9051: t3editor / On Mac Os X the key combination CMD+LEFT will close...
authorTobias Liebig <mail@etobi.de>
Mon, 20 Apr 2009 18:19:12 +0000 (18:19 +0000)
committerTobias Liebig <mail@etobi.de>
Mon, 20 Apr 2009 18:19:12 +0000 (18:19 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-2@5334 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/t3editor/jslib/codemirror/editor.js

index eeb8aba..6e1dbd3 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-04-20  Tobias Liebig <mail_typo3@etobi.de>
+
+       * Fixed issue #9051: t3editor / On Mac Os X the key combination CMD+LEFT will close the t3editor
+
 2009-04-20  Steffen Kamper  <info@sk-typo3.de>
 
        * Fixed bug #10759: RemoveXSS is incompatible with PHP >= 5.2.8
index 1c9d599..8182abd 100644 (file)
@@ -170,6 +170,12 @@ var Editor = (function(){
       node = node.previousSibling;
     return node;
   }
+  function endOfLine(node, container) {
+       if (!node) node = container.firstChild;
+       else if (node.nodeName == "BR") node = node.nextSibling;
+       while (node && node.nodeName != "BR") node = node.nextSibling;
+       return node;
+  }
 
   function cleanText(text) {
     return text.replace(/\u00a0/g, " ");
@@ -487,6 +493,17 @@ var Editor = (function(){
         this.handleTab();
         event.stop();
       }
+      else if (event.metaKey && !event.shiftKey && (event.keyCode == 37 || event.keyCode == 39)) { // Meta-left/right
+        var cursor = select.selectionTopNode(this.container);
+        if (cursor === false || !this.container.firstChild) return;
+
+        if (event.keyCode == 37) select.focusAfterNode(startOfLine(cursor), this.container);
+        else {
+          var end = endOfLine(cursor, this.container);
+          select.focusAfterNode(end ? end.previousSibling : this.container.lastChild, this.container);
+        }
+        event.stop();
+      }
       else if (event.ctrlKey) {
         if (event.keyCode == 90 || event.keyCode == 8) { // Z, backspace
           this.history.undo();