https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113304

Revision: 113304
Author:   inez
Date:     2012-03-07 21:37:39 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
Small refactoring. Changed method name, from Surface.getSelection to 
Surface.getSelectionRange.

Modified Paths:
--------------
    trunk/extensions/VisualEditor/modules/ve/ce/ve.ce.Surface.js

Modified: trunk/extensions/VisualEditor/modules/ve/ce/ve.ce.Surface.js
===================================================================
--- trunk/extensions/VisualEditor/modules/ve/ce/ve.ce.Surface.js        
2012-03-07 21:32:41 UTC (rev 113303)
+++ trunk/extensions/VisualEditor/modules/ve/ce/ve.ce.Surface.js        
2012-03-07 21:37:39 UTC (rev 113304)
@@ -84,7 +84,7 @@
 /* Methods */
 
 ve.ce.Surface.prototype.annotate = function( method, annotation ) {
-       var range = this.getSelection(),
+       var range = this.getSelectionRange(),
                _this = this;
 
        if ( method === 'toggle' ) {
@@ -164,14 +164,14 @@
                sel = rangy.getSelection(),
                key = sel.getRangeAt(0).toString().replace( /\s/gm, '' );
 
-       _this.clipboard[key] = ve.copyArray( _this.documentView.model.getData( 
_this.getSelection() ) );
+       _this.clipboard[key] = ve.copyArray( _this.documentView.model.getData( 
_this.getSelectionRange() ) );
 
        if ( event.type == 'cut' ) {
                setTimeout( function() {
                        // we don't like how browsers cut, so let's undo it and 
do it ourselves.
                        document.execCommand('undo', false, false);
                        
-                       var selection = _this.getSelection(),
+                       var selection = _this.getSelectionRange(),
                                node = rangy.getSelection().anchorNode;
                        
                        // transact
@@ -191,7 +191,7 @@
 
 ve.ce.Surface.prototype.onPaste = function( e ) {
        var     _this = this,
-               insertionPoint = _this.getSelection().start,
+               insertionPoint = _this.getSelectionRange().start,
                node = rangy.getSelection().anchorNode;
        
        $('#paste')
@@ -448,7 +448,7 @@
                        }
                        break;
        }
-       var range = this.getSelection();
+       var range = this.getSelectionRange();
        if ( range.getLength() !== 0 ) {
                e.preventDefault();
        }
@@ -546,21 +546,23 @@
        sel.addRange( range );
 };
 
-ve.ce.Surface.prototype.getSelection = function() {
-       var sel = rangy.getSelection(),
-               range;
 
-       if ( sel.anchorNode === sel.focusNode && sel.anchorOffset === 
sel.focusOffset ) {
-               var offset = this.getOffset( sel.anchorNode, sel.anchorOffset, 
true );
-               range = new ve.Range( offset, offset );
+/**
+ * @method
+ * @returns {ve.Range} Current selection range
+ */
+ve.ce.Surface.prototype.getSelectionRange = function() {
+       var rangySel = rangy.getSelection();
+
+       if ( rangySel.isCollapsed ) {
+               var offset = this.getOffset( rangySel.anchorNode, 
rangySel.anchorOffset, true );
+               return new ve.Range( offset, offset );
        } else {
-               range = new ve.Range(
-                       this.getOffset( sel.anchorNode, sel.anchorOffset, true 
),
-                       this.getOffset( sel.focusNode, sel.focusOffset, true )
+               return new ve.Range(
+                       this.getOffset( rangySel.anchorNode, 
rangySel.anchorOffset, true ),
+                       this.getOffset( rangySel.focusNode, 
rangySel.focusOffset, true )
                );
        }
-       range.normalize();
-       return range;
 };
 
 ve.ce.Surface.prototype.getLeafNode = function( elem ) {
@@ -621,7 +623,7 @@
 
 ve.ce.Surface.prototype.handleDelete = function( backspace, isPartial ) {
        this.stopPolling();
-       var selection = this.getSelection().clone(),
+       var selection = this.getSelectionRange().clone(),
                sourceOffset,
                targetOffset,
                sourceSplitableNode,
@@ -700,7 +702,7 @@
 
 ve.ce.Surface.prototype.handleEnter = function() {
        this.stopPolling();
-       var selection = this.getSelection().clone(),
+       var selection = this.getSelectionRange().clone(),
                tx;
        if ( selection.from !== selection.to ) {
                this.handleDelete( false, true );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to