[BUGFIX] RTE: Incorrect identification of some key events in Chrome 59/36059/3
authorStanislas Rolland <typo3@sjbr.ca>
Sat, 17 Jan 2015 02:44:53 +0000 (21:44 -0500)
committerStanislas Rolland <typo3@sjbr.ca>
Sat, 17 Jan 2015 03:09:19 +0000 (04:09 +0100)
Processing of the browser event key property is incorrect and leads
to errors in Google Chrome which does not support this property.

Releases: master
Resolves: #64328
Change-Id: I79734c54169c9d639478f9da292b93233bf75c3d
Reviewed-on: http://review.typo3.org/36059
Reviewed-by: Stanislas Rolland <typo3@sjbr.ca>
Tested-by: Stanislas Rolland <typo3@sjbr.ca>
typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/HTMLArea/Event/Event.js

index c0b0d81..0566492 100644 (file)
@@ -173,8 +173,12 @@ define('TYPO3/CMS/Rtehtmlarea/HTMLArea/Event/Event',
                 * @return integer the normalized key
                 */
                getKey: function (event) {
-                       return Event.normalizeKey(event.originalEvent.key ? event.originalEvent.key : (event.originalEvent.charCode ? event.originalEvent.charCode : (event.originalEvent.keyCode ? event.originalEvent.keyCode : event.originalEvent.which)));
-                       return Event.normalizeKey((event.originalEvent.charCode ? event.originalEvent.charCode : (event.originalEvent.keyCode ? event.originalEvent.keyCode : event.originalEvent.which)));
+                       var originalEvent = event.originalEvent;
+                       return Event.normalizeKey(
+                               (typeof originalEvent.key !== 'undefined' && originalEvent.key && originalEvent.key !== 'Unidentified')
+                               ? (Event.domLevel3Keys[originalEvent.key] || originalEvent.key)
+                               : (originalEvent.charCode ? originalEvent.charCode : (originalEvent.keyCode ? originalEvent.keyCode : originalEvent.which))
+                       );
                },
 
                /**
@@ -184,7 +188,7 @@ define('TYPO3/CMS/Rtehtmlarea/HTMLArea/Event/Event',
                 * @return integer the normalized key
                 */
                normalizeKey: function(key){
-                   return UserAgent.isSafari ? (Event.safariKeys[key] || key) : (Event.domLevel3Keys[key] || key);
+                   return UserAgent.isSafari ? (Event.safariKeys[key] || key) : key;
                },
 
                /**