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

Revision: 112833
Author:   inez
Date:     2012-03-01 20:49:21 +0000 (Thu, 01 Mar 2012)
Log Message:
-----------
Added getSelection method to Surface

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

Modified: trunk/extensions/VisualEditor/modules/ve/ce/ve.es.Surface.js
===================================================================
--- trunk/extensions/VisualEditor/modules/ve/ce/ve.es.Surface.js        
2012-03-01 20:04:42 UTC (rev 112832)
+++ trunk/extensions/VisualEditor/modules/ve/ce/ve.es.Surface.js        
2012-03-01 20:49:21 UTC (rev 112833)
@@ -123,11 +123,13 @@
 
 ve.es.Surface.prototype.pollContent = function() {
        if ( this.poll.compositionStart !== null && this.poll.compositionEnd 
!== null ) {
+
                var     text = ve.es.Surface.getDOMText2( this.poll.node ),
                        hash = ve.es.Surface.getDOMHash( this.poll.node ),
                        localOffset = this.poll.compositionEnd;
                this.poll.compositionStart = null;
                this.poll.compositionEnd = null;
+
        } else {
                var rangySel = rangy.getSelection();
 
@@ -183,7 +185,7 @@
                                nodeOffset + 1 + this.poll.prevText.length - 
sameFromRight
                        ) ) );
                        var newData = text.substring( sameFromLeft, text.length 
- sameFromRight ).split( '' ); 
-                       var annotations = 
this.model.getDocument().getAnnotationsFromOffset( nodeOffset + 1 + 
sameFromLeft - 1 );
+                       var annotations = 
this.model.getDocument().getAnnotationsFromOffset( nodeOffset + 1 + 
sameFromLeft );
                        ve.dm.DocumentNode.addAnnotationsToData( newData, 
annotations );
                        this.model.transact( 
this.documentView.model.prepareInsertion(
                                nodeOffset + 1 + sameFromLeft,
@@ -295,6 +297,20 @@
        sel.addRange(range);
 };
 
+ve.es.Surface.prototype.getSelection = function() {
+       var selection = rangy.getSelection();
+
+       if ( selection.anchorNode === selection.focusNode && 
selection.anchorOffset === selection.focusOffset ) {
+               var offset = this.getOffset( selection.anchorNode, 
selection.anchorOffset );
+               return new ve.Range( offset, offset );
+       } else {
+               return new ve.Range(
+                       this.getOffset( selection.anchorNode, 
selection.anchorOffset ),
+                       this.getOffset( selection.focusNode, 
selection.focusOffset )
+               );
+       }
+};
+
 ve.es.Surface.prototype.getLeafNode = function( elem ) {
        var     $node = $( elem );
        while( !$node.hasClass( 'ce-leafNode' ) ) {


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

Reply via email to