jenkins-bot has submitted this change and it was merged.
Change subject: Prevent IE from editing ce="false"
......................................................................
Prevent IE from editing ce="false"
This is a redux of logic already in master.
Moved from keydown to keypress because IE
fires keydown multiple times for held keys.
Changed the logic to determine that the current
offset is just after an element that should not be
directly edited.
Change-Id: I5206d8919abde740d92f636b0c8618c4ebb6f6ff
---
M modules/ve/ce/ve.ce.Surface.js
1 file changed, 23 insertions(+), 18 deletions(-)
Approvals:
Inez: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve/ce/ve.ce.Surface.js b/modules/ve/ce/ve.ce.Surface.js
index c99d466..75eb836 100644
--- a/modules/ve/ce/ve.ce.Surface.js
+++ b/modules/ve/ce/ve.ce.Surface.js
@@ -277,30 +277,18 @@
* @emits selectionStart
*/
ve.ce.Surface.prototype.onDocumentKeyDown = function ( e ) {
- var selection, prevNode;
-
// Ignore keydowns while in IME mode but do not preventDefault them.
if ( this.inIme === true ) {
return;
}
- if ( $.browser.msie === true ) {
- // Aliens/Entities
- selection = this.model.getSelection();
- if ( selection.start !== 0 && selection.isCollapsed() ) {
- prevNode =
this.model.getDocument().getDocumentNode().getNodeFromOffset( selection.start -
1 );
- // TODO: Check for generated content
- if ( prevNode.type === 'MWimage' || prevNode.type ===
'alienInline' ) {
- this.model.change( null, new ve.Range(
selection.start ) );
- }
- }
- // IME
- if ( e.which === 229 ) {
- this.inIme = true;
- this.handleInsertion();
- return;
- }
+ // IME
+ if ( $.browser.msie === true && e.which === 229 ) {
+ this.inIme = true;
+ this.handleInsertion();
+ return;
}
+
if ( ve.ce.isArrowKey( e.keyCode ) ) {
// Detect start of selecting using shift+arrow keys.
if ( !this.dragging && !this.selecting && e.shiftKey ) {
@@ -340,6 +328,23 @@
* @param {jQuery.Event} e Key press event
*/
ve.ce.Surface.prototype.onDocumentKeyPress = function ( e ) {
+ var selection, prevNode, documentModel = this.model.getDocument();
+
+ // Prevent IE from editing Aliens/Entities
+ if ( $.browser.msie === true ) {
+ selection = this.model.getSelection();
+ if ( selection.start !== 0 && selection.isCollapsed() ) {
+ prevNode =
documentModel.getDocumentNode().getNodeFromOffset( selection.start - 1 );
+ if (
+ !this.documentView.getSlugAtOffset(
selection.start ) &&
+ prevNode.isContent() &&
+ documentModel.data.isCloseElementData(
selection.start - 1 )
+ ) {
+ this.model.change( null, new ve.Range(
selection.start ) );
+ }
+ }
+ }
+
if ( ve.ce.isShortcutKey( e ) ||
e.which === ve.Keys.DOM_VK_RETURN ||
e.which === ve.Keys.DOM_VK_BACK_SPACE ||
--
To view, visit https://gerrit.wikimedia.org/r/58255
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I5206d8919abde740d92f636b0c8618c4ebb6f6ff
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Christian <[email protected]>
Gerrit-Reviewer: Inez <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits